【问题标题】:Validating form and counting errors验证表格和计数错误
【发布时间】:2014-09-13 13:52:50
【问题描述】:

我想要计算错误数(通过在输入为空时增加 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);
}

【问题讨论】:

  • 调试它,如果使用chrome按f12,找到你的脚本,在该代码中设置一个断点,然后看看发生了什么

标签: javascript forms input


【解决方案1】:

问题解决了

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

【讨论】:

    【解决方案2】:

    问题出在这一行:

    y = y++
    

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

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

    您只需:

    y++;
    

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-08
        • 2015-12-16
        • 2020-11-18
        • 1970-01-01
        • 2016-01-01
        相关资源
        最近更新 更多