【发布时间】:2012-06-18 16:04:59
【问题描述】:
我在创建一个简单的 html 登录页面时遇到问题,当我使用无效凭据提交登录表单时,即使我的验证方法正在执行“return false”命令,该表单仍会提交。我知道这个问题已经在这里被问过很多次了,但是这些问题的答案都没有帮助到我。
我的html表单如下:
<form onSubmit="return validateForm();" method="get" action="TestPage.html">
<div id="centralPoint" class="frame">
<select id="centralPointSelect" data-inline="true" data-mini="true" data-native-menu="false" name="centralPoint"></select>
</div>
<div id="credentialsFrame" class="frame">
<input id="userField" type="text" name="Username" />
<input id="passField" type="password" name="Password" />
</div>
<div id="errorMsg"></div>
<input id="loginBtn" type="submit" value="Login" />
<div id="rememberMe" class="frame">
<input type="checkbox" id="checkbox-1" class="custom" data-mini="true" name="rememberMe" />
<label for="checkbox-1">Keep me signed in</label>
</div>
<div id="forgotPassFrame">
<input id="forgotPass" type="button" data-mini="true" value="Forgot password?" />
</div>
</form>
这是我的 javascript 方法。请注意,即使这里唯一的代码行是“return false;”。表单仍然提交。我还检查了 firebug 以确保该方法实际上正在被调用并且它确实返回 false,并且一切都检查出来了。
function validateForm()
{
var usernameTxt = $("#userField").attr("value");
var passwordTxt = $("#passField").attr("value");
if (usernameTxt == "" || passwordTxt == "" || (usernameTxt == userLbl && passwordTxt == passLbl))
{
$("#errorMsg").html("Please enter a username and password.");
return false;
}
}
有什么东西很明显是我遗漏的吗?除了您在 html 表单标记中看到的内容之外,我没有以任何方式绑定 onsubmit 事件,也没有将任何点击处理程序分配给提交按钮。
我正在使用 JQuery mobile 可能与此相关,这是否可能与我的表单有关?
【问题讨论】:
-
将
onSubmit设置为validateForm(); return false;,这在过去对我有用。
标签: javascript html jquery-mobile