jquery-mobile – event.preventDefault()不阻止在jQuery Mobile .live()事件上提交表单

我试图阻止登录表单提交,所以我可以查询服务器,验证用户名和密码,然后才转到主页。

以下是相关代码

在login.html中:

<form id="login-form">
            <input type="text" name="login-username" id="login-username" value="" placeholder="Username" />
            <input type="password" name="login-password" id="login-password" value="" placeholder="Password" /><br />
            <button id="cab-submit" type="submit" data-theme="a" data-inline="true">Log In</button>
        </form>

在app.js中:

$("#login-form").live("submit",function(event) {
        event.preventDefault();
        $.mobile.changePage("main.html",{
            transition: "fade"
        });
    });

我是一个经验丰富的jQuery程序员,但从来没有遇到过这种情况。 changePage()确实有效,但只有在表单提交后才会发生,这会导致不必要的页面加载。

编辑:找到解决方案。

如果我想处理自己提交的表单,我不得不将数据-ajax =“false”添加到表单中。这工作正常

标记

<form id="login-form" data-ajax="false">
            <input type="text" name="login-username" id="login-username" value="" placeholder="Username" />
            <input type="password" name="login-password" id="login-password" value="" placeholder="Password" /><br />
            <button id="cab-submit" type="submit" data-theme="a" data-inline="true">Log In</button>
        </form>

解决方法

回答我自己的问题如果我想处理自己提交的表单,我不得不将数据-ajax =“false”添加到表单中。这工作正常

标记

<form id="login-form" data-ajax="false">
        <input type="text" name="login-username" id="login-username" value="" placeholder="Username" />
        <input type="password" name="login-password" id="login-password" value="" placeholder="Password" /><br />
        <button id="cab-submit" type="submit" data-theme="a" data-inline="true">Log In</button>
    </form>

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...