验证表格和计算错误

时间:2014-09-13 13:52:50

标签: javascript forms input

我想要计算错误数(通过在输入为空时增加y值)但是当我想要警告时,显示初始值(0)。

function validateForm() {

var y = 0;
$$('#register .inputtext').each(function(item) {
var my_class = ".mbm ."+item.id+" .sp_9vUokIDmpP8";
      var first_class = ".mbm #"+item.id+"";

if (item.value==null || item.value=="")
      {
      y = y++;
      $$(first_class).invoke('addClassName', 'kl345');
      $$(my_class).invoke('setStyle', { display:'block' });

      }else{
        $$(first_class).invoke('addClassName', 'kl345');
        $$(my_class).invoke('setStyle', { display:'none' });
      }

})
alert(y);
}

3 个答案:

答案 0 :(得分:0)

问题解决了

 function validateForm() {

var y = 0;
$$('#register .inputtext').each(function(item) {
var my_class = ".mbm ."+item.id+" .sp_9vUokIDmpP8";
      var first_class = ".mbm #"+item.id+"";

if (item.value==null || item.value=="")
      {
      y++;
      $$(first_class).invoke('addClassName', 'kl345');
      $$(my_class).invoke('setStyle', { display:'block' });

      }else{
        $$(first_class).invoke('addClassName', 'kl345');
        $$(my_class).invoke('setStyle', { display:'none' });
      }

})
alert(y);
}

答案 1 :(得分:0)

问题出在这一行:

y = y++

执行y++后,在返回后y 会增加1。因此,每次执行y++时,它都会从0变为1,但随后它会再次为y =提供旧值0。这样,它实际上永远不会增加,因为你会用0覆盖它。

当你执行y = ++y时,它会以另一种方式执行:它向y添加1,然后返回该值。但这完全没必要(只是对另一方++如何改变行为的解释)。

您需要做的只是:

y++;

这样y也会更新,您不需要=部分。

答案 2 :(得分:0)

我认为您的代码中存在一些语法错误。但根据您的需要,试试这个:

function validateForm() {

    var y = 0;

    $$('#register .inputtext').each(function(item_id) {

        var my_class = ".mbm ."+item.id+" .sp_9vUokIDmpP8";
        var first_class = ".mbm #"+item.id+"";

        if ($(this).val() == '') {
            y++;
            $$(first_class).addClass('kl345');
            $$(my_class).css({ display: 'block' });

        } else {
            $$(first_class).addClass('kl345');
            $$(my_class).css({ display: 'none' });
        }

    });

    alert(y);
}