Javascript 无法理解此验证为何无法按预期工作
我的问题是我想用javascript面向对象的方式验证我的表单,但我无法让它工作 HTML:------------------------------------------------------------------------------------------------------Javascript 无法理解此验证为何无法按预期工作,javascript,jquery,Javascript,Jquery,我的问题是我想用javascript面向对象的方式验证我的表单,但我无法让它工作 HTML:------------------------------------------------------------------------------------------------------ JS&JQUERY:-------------------------------------------------------------------------------
-
JS&JQUERY:---------------------------------------------------------------------------------------------
var formValidate={
验证:功能(elem){
var frm=元素属性('id');
$('.required','#'+frm).each(function(){
if($(this.val()=''){
警报($(this).attr('id')+'是必填字段。“);//使用e.preventDefault()
使用e.preventDefault()
一个有效的例子:
工作示例:
您需要在submit
处理程序中返回验证标志
$(function () {
$('form').submit(function () {
return formValidate.validate($('form'));
});
});
另外,您的return语句只是中断了每个
函数,而不是从验证
方法返回
validate: function (elem) {
var isValid = true;
var frm = elem.attr('id');
$('.required', '#' + frm).each(function () {
if ($(this).val() === '' && isValid) {
alert($(this).attr('id') + ' is a required field.');
$(this).focus();
isValid = false;
return false;
}
});
return isValid;
}
您可以稍微简化验证功能:
您需要在submit
处理程序中返回验证标志
$(function () {
$('form').submit(function () {
return formValidate.validate($('form'));
});
});
另外,您的return语句只是中断了每个
函数,而不是从验证
方法返回
validate: function (elem) {
var isValid = true;
var frm = elem.attr('id');
$('.required', '#' + frm).each(function () {
if ($(this).val() === '' && isValid) {
alert($(this).attr('id') + ' is a required field.');
$(this).focus();
isValid = false;
return false;
}
});
return isValid;
}
您可以稍微简化验证功能:
@GrantThomas当我提交表单时,它得到验证但不返回false
@GrantThomas当我提交表单时,它得到验证但不返回false
。谢谢Dipesh,但我没有使用ajax,所以我想这里不需要“防止默认值”。@Jai所以你只想在验证失败时停止验证,不让表单重定向s、 .对。?谢谢Dipesh,但我没有使用ajax,所以我想这里不需要使用默认值。@Jai所以如果验证失败,您只想停止对not let form redirect的验证。.对。?再等待2分钟@Dipesh always do。再等待2分钟@Dipesh always do。
var formValidate = {
validate: function(elem) {
var frm = elem.attr('id');
var invalid = 0;
$('.required', '#' + frm).each(function() {
if ($(this).val() === '') {
alert($(this).attr('id') + ' is a required field.');
$(this).focus();
invalid++;
return false; // <- affects "each", therefore stopping the loop
}
});
// add these, to also return value from function
if (invalid > 0) return false;
return true;
}
};
$(function() {
$('form').submit(function() {
return formValidate.validate( $(this) ); // you must pass the returned value to your submit callback
});
});
$(function () {
$('form').submit(function () {
return formValidate.validate($('form'));
});
});
validate: function (elem) {
var isValid = true;
var frm = elem.attr('id');
$('.required', '#' + frm).each(function () {
if ($(this).val() === '' && isValid) {
alert($(this).attr('id') + ' is a required field.');
$(this).focus();
isValid = false;
return false;
}
});
return isValid;
}
validate: function (elem) {
var isValid = true;
$('.required', elem).each(function () {
var $this = $(this);
if ($this.val() === '' && isValid) {
alert($this.attr('placeholder') + ' is a required field.');
$this.focus();
isValid = false;
return false;
}
});
return isValid;
}