Javascript 单击可重新计数的函数
我正在运行onclick验证函数。当您最初单击按钮时,它会遍历每个字段并确保验证是否正确。它目前只通过控制台告诉我有多少错误,或者是否没有错误 第一次就成功了!但是,当我修复错误并再次单击按钮时,它仍然表示在修复之前存在错误 我的问题是,有没有办法让按钮重新计数或“刷新”?这是我的代码Javascript 单击可重新计数的函数,javascript,jquery,Javascript,Jquery,我正在运行onclick验证函数。当您最初单击按钮时,它会遍历每个字段并确保验证是否正确。它目前只通过控制台告诉我有多少错误,或者是否没有错误 第一次就成功了!但是,当我修复错误并再次单击按钮时,它仍然表示在修复之前存在错误 我的问题是,有没有办法让按钮重新计数或“刷新”?这是我的代码 function moveOn(){ if (errors > 0) { console.log(errors); } else if(errors === 0){
function moveOn(){
if (errors > 0) {
console.log(errors);
} else if(errors === 0){
console.log("no errors!");
}
};
下面是代码的其余部分
var errors = 0;
function validate(){
$(".validName").each(function() {
var val = $(this).val();
var minLength = defaultMinNameLength
//check data-min-length if exists then
// min length = thatValue
if (validateName(val) && validateLength(val,minLength)){
inlineValidate(this, { '.error': 'hide', '.correct': 'fadeIn', '.incorrect': 'hide' },"#ccc");
} else {
errors++;
inlineValidate(this, { '.error': 'fadeIn', '.correct': 'hide', '.incorrect': 'fadeIn' }, "#ff9999");
}
});
$(".validLetNum").each(function() {
var val = $(this).val();
var minLength = defaultMinNameLength
if (validateLetterNum(val) && validateLength(val,minLength)){
inlineValidate(this, { '.error': 'hide', '.correct': 'fadeIn', '.incorrect': 'hide' },"#ccc");
} else {
errors++;
inlineValidate(this, { '.error': 'fadeIn', '.correct': 'hide', '.incorrect': 'fadeIn' }, "#ff9999");
}
});
$(".validEmail").each(function() {
var val = $(this).val();
var minLength = defaultMinNameLength
if (validateEmail(val) && validateLength(val,minLength)){
inlineValidate(this, { '.error': 'hide', '.correct': 'fadeIn', '.incorrect': 'hide' },"#ccc");
} else {
errors++;
inlineValidate(this, { '.error': 'fadeIn', '.correct': 'hide', '.incorrect': 'fadeIn' }, "#ff9999");
}
});
// console.log(errors);
};
function moveOn(){
if (errors > 0) {
console.log(errors);
} else if(errors === 0){
console.log("no errors!");
}
};
您可以通过更改以下内容来解决此问题:
var errors = 0;
function validate(){
致:
注意:从您的代码来看,您不太清楚如何调用moveOn()
(甚至不清楚您如何调用validate()
),因此我无法自信地确认上述操作是否可以解决您的问题
小心
- 尽量不要把全局范围弄乱。您希望使用本地化变量。如果您需要在另一个函数中使用类似
的变量,请将该变量传递给第二个函数,或者这可能表示您的两个函数应合并为一个函数errors
- 将JS代码与HTML分开。与其使用元素的
属性,不如利用jQuery的强大功能,将onclick
事件绑定到元素click
错误
变量?每次更正错误时,您需要重新初始化错误
。也许当您单击按钮时。在验证fieldsNico的函数中设置errors=0,您介意详细说明吗?谢谢你,谢谢你,约书亚。当我尝试这一点时,它总是说有0个错误。这修复了它!非常感谢。我在htmlGlad中使用onclick属性调用moveOn(),我可以提供帮助。:-)通常,提供相关的HTML代码片段是有帮助的。
var errors = 0;
function validate(){
var errors;
function validate() {
errors = 0;