我正在尝试阻止登录表单提交,以便我可以查询服务器,验证用户名和密码,然后才转到主页。
以下是相关代码:
在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()确实有效,但只在表单提交后才会发生,这会导致不必要的页面加载。
编辑:找到解决方案。
如果我想自己处理表单提交,我必须在表单中添加data-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>
答案 0 :(得分:14)
回答了我自己的问题。如果我想自己处理表单提交,我必须在表单中添加data-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>
答案 1 :(得分:0)
尝试将提交按钮上的ID更改为id =“submit”,然后查看会发生什么。看起来它可能是jQuery mobile的一个已知问题。