我有一个表单,我需要用jquery验证它,看看一些字段是否为空,但当我用这个函数提交它时:
$("#servicio-tecnico-1").submit(function( event ) {
return validar_form();
});
当我提交函数时,它什么也不做,并且发送带有空字段的表单。?我怎样才能让它工作?
以防万一我在这里做了一个JSFiddle
https://jsfiddle.net/ricardojriosr/hr97240j/1/
提前感谢
问题是您有两个变量i
和j
,它们在内部函数中声明,当在内部函数外部使用时会引发错误
$("#servicio-tecnico-1").submit(function (event) {
var valid = validar_form();
return valid;
});
然后
var i = 0;
$('.vfb-radio').each(function () {
if ($(this).is(':checked')) {
i = i + 1;
}
});
var j = 0;
$('.vfb-checkbox').each(function () {
if ($(this).is(':checked')) {
j = j + 1;
}
});
在上面的代码段中,i/j
在each
循环内,它在循环外使用
演示:Fiddle
但这两组代码可以简化为
var i = $('.vfb-radio:checked').length;
var j = $('.vfb-checkbox:checked').length;
演示:Fiddle
您可以使用jquery validate执行验证,然后提交。更多信息@http://jqueryvalidation.org/validate/
$(".selector").validate({
submitHandler: function(form) {
// do other things for a valid form
form.submit();
}
});
$("#servicio-tecnico-1").submit(function( event ) {
if ( validar_form() === true ) {
//form is valid now submit it
return;
}
else {
// prevent form submittal maybe return an error
event.preventDefault();
}
});
您可以使用类似jqueryvalidation的插件这是有据可查的。这里还有一个演示,包括单选按钮。