函数重新点击

时间:2015-09-02 15:59:07

标签: javascript jquery

我正在运行验证功能onclick。当您最初点击按钮时,它会遍历每个字段并确保验证是否良好。它目前只通过控制台告诉我有多少错误,或者是否没有错误。

它第一次运作!但是,当我修复错误并再次单击该按钮时,它仍然表示在修复之前存在错误。

我的问题是,有没有办法让按钮重新计数或“刷新”?这是我的代码

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!");
    }
};

2 个答案:

答案 0 :(得分:0)

function moveOn(){
    if (errors > 0) {
        // Correct errors
        errors = 0;
    } else if(errors === 0){
        console.log("no errors!");
    }
};

答案 1 :(得分:0)

您可以可能通过更改以下内容来解决问题:

var errors = 0;
function validate(){

要:

var errors;
function validate() {
    errors = 0;

注意:从您的代码中,您不清楚如何致电moveOn()(甚至是您致电validate()的乳清),因此我无法自信地确认上述内容应该可以解决您的问题问题。

<强>注意

  • 尽量不要混淆全球范围。您想使用本地化变量。如果你需要在另一个函数中使用类似errors的变量,那么将该变量传递给第二个函数,或者这可能表明你的两个函数应合并为一个。
  • 将您的JS代码与HTML分开。不要使用元素的onclick属性,最好利用jQuery的强大功能,并将click事件绑定到元素上。