Jquery validate在登录表单中始终为true
Jquery validate always true in a login form
我正在尝试用spring安全性实现一个简单的登录表单。但我想确保每次用户按下按钮时,只有在填写完所有内容后才能提交表格。
我使用来验证Jquery validate,问题是在按下按钮后,表单无论如何都会被提交(即使所有字段都是空的(。
我的JSP是:
<form id="loginuser" name="loginuser" action="<spring:url value="/j_spring_security_check" htmlEscape="true" />" method="POST" class="login">
<div id="user_login">
<fieldset>
<dl>
<input type='text' name='other_email' id='other_email'>
<dt><label for="j_username"><fmt:message key="app.username" />:</label></dt>
<dd><input id="j_username" name="j_username" type="text" value="" tabindex="1" required/></dd>
<dt><label for="j_password"><fmt:message key="app.password" />:</label></dt>
<dd><input id="j_password" name="j_password" type="password" tabindex="2" required/></dd>
</dl>
</fieldset>
<p class="btn-paragraph">
<input type="submit" class="submitLoginButton btn-submit-style" value="<fmt:message key="app.login"/>" />
<% // TODO: Quando a pagina de recovery password estiver concluida alterar o link para la!! %>
<a href="www.google.pt" class="help-link"><fmt:message key="login.recovery" /></a>
</p>
<div id="loading" style="display:none;">
<img id="loading-image" src="<c:url value="/resources/images/loader.gif"/>" alt="Loading..." />
</div>
</div>
</form>
我的Javascript代码是:
$(function() {
$('#loginuser').validate({
errorClass: 'errors',
validClass: 'successes',
onkeyup: false,
rules: {
j_username: {
minlength: minLength,
loginUsernameRegex: true,
required: true
},
j_password: {
required: true,
minlength: minLength
}
},
messages: {
j_username: {
minlength: '<fmt:message key="registeruser.username.minlength"/>',
required: '<fmt:message key="registeruser.username.required"/>',
loginUsernameRegex: '<fmt:message key="registeruser.username.alfanumeric.only"/>'
},
j_password: {
minlength: '<fmt:message key="registeruser.pwd.minlength"/>',
required: '<fmt:message key="registeruser.pwd.required"/>'
}
},
showErrors : function(errorMap, errorList) {
this.defaultShowErrors();
return false;
}
});
$('.submitLoginButton').click(function(evt){
if($('#other_email').val() && $('#other_email').val().length > 0){
return false;
}
if($('#loginuser').valid()){
console.log("Valid form");
}
else{console.log("not valid");}
return false;
});
});
所以每次我的控制台显示"有效表单"消息时。有人知道我在这里错过了什么??
谢谢!
我在jsfiddle中尝试了您的代码,它似乎可以工作。
但是,我认为应该为表单注册一个提交时处理程序,而不是为按钮注册一个点击时处理程序。
$('#loginuser').submit(function() {
if ($('#other_email').val()) {
return false;
}
});
jsfiddle
尝试设置一个if语句来检查字段是否为空。if j_username == nil{do something};
祝你好运!:D
相关文章:
- 带有远程 => true 的 Rails 表单提交 -- JS 文件呈现但不执行
- 根据签入的表单,在html电子邮件模板中将复选框标记为true
- 当我们使用Javascript提交表单时,IsPostBack始终为True
- 阻止表单提交 javascript 为什么有一个明显的错误语句返回 true
- 为什么只有当我在字符串周围输入引号时,表单输入的isNaN才为true
- 如何将html表单与php链接,以便在例如单击按钮时返回true
- 使表单验证返回 true
- 如何使表单仅在JavaScript函数返回true时才调用PHP
- 尝试在javascript中创建一个表单,该表单将检查我的ifelse并重定向到url(如果为true)
- 在验证完成之前,AngularJS 表单$valid设置为 true
- 如何重置“;readonly=true”;从php创建的表单中的输入字段为“”;readonly=false”;使用ja
- jQuery表单即使返回true也不提交
- 使用remote=>继续表单发布;true/控制器在Devise登录后的操作
- HTML表单,onclick="this.disabled=true;this.value='发送中,
- contenteditable=“;true”:创建语法高亮显示的输入表单
- Html5验证表单required="true"海关检查
- 由于问题性别部分,注册表单不会返回true
- 如何使表单只有在所有函数返回true时才提交
- 使用onsubmit的表单验证总是返回true
- 当按钮按下或设置为true时,从JSON动态创建表单