我在提交请求之前尝试验证表单。 我正在使用jquery验证
我期待当页面加载完毕后,表单将自动提交,我将在div中看到“正在加载”。 但什么都没发生 这是我的代码。但似乎它不起作用..
<script type="text/javascript">
function submitForm() {
$('#SearchForm').validate({
errorLabelContainer: "#ErrorLabel",
rules: {
instrument: {
required: true,
maxlength: 10
}
},
messages: {
maxlength: "Must no longer than 10 characters",
required: "Must not be empty"
},
submitHandler: function () { $('#SearchForm').submit(); }
});
}
$(document).ready(function () {
$('#SearchForm').submit(function () {
$('#DivToUpdate').text('Loading ...');
});
submitForm();
});
</script>
LL
答案 0 :(得分:4)
做了一个小的工作演示 http://jsfiddle.net/CRfuZ/
两件事:尝试invalidHandler
并将form
传递给submitHandler
在上面的演示中,如果你输入更多maxlenght 10
,invalidHandler
中的halbert将会捕获它。
休息随意玩这个演示。
这有望帮助:)
link:http://docs.jquery.com/Plugins/Validation/validate
<强>码强>
jQuery(function($) {
$("#form").validate({
debug: false,
focusInvalid: false,
onfocusout: false,
onkeyup: false,
onclick: false,
rules: {
instrument: {
required: true,
maxlength: 10
},
},
messages: {
maxlength: "Must no longer than 10 characters",
required: "Must not be empty"
},
success: function(label) {
alert('succes:' + label);
},
submitHandler: function(form) {
alert('start submitHandler');
postContent('test');
alert('end submitHandler');
},
invalidHandler: function(form, validator) {
alert('invalidHandler');
},
});
});
function postContent(postData) {
alert('postcontent: ' + postData);
}
答案 1 :(得分:1)
使用下面的代码可以解决您的问题......
<script type="text/javascript">
jQuery(function ( $ ) {
var $theForm = $( 'form' );
$( '#DivToUpdate' ).text( 'Loading ...' );
$theForm.validate({
rules: {
instrument : {
required: true,
maxlength: 10
}
}, messages: {
maxlength : "Must no longer than 10 characters",
required : "Must not be empty"
}
});
if( $theForm.valid() ) {
$theForm.submit(); //submitting the form
}
});
</script>
你一般不应该使用submitHandler
......
已添加:在jsfiddle处运行示例。