使用each()检查多输入计算的问题

时间:2015-12-03 15:08:49

标签: javascript jquery

请您查看this Demo并告诉我为什么我无法使用每个迭代器进行计算检查?

正如您所见,我试图使用:

if (!parseInt($(this).val()) === ((parseInt($(this).closest('div').find('.upper').text())) - parseInt($(this).closest('div').find('.lower').text()))) {}

它没用,然后我使用了它:

if (!parseInt($(this).val()) === ((parseInt($(this).prev('.upper').text())) - parseInt($(this).prev('.lower').text()))) {

但仍未验证输入?

1 个答案:

答案 0 :(得分:0)

我不确定你想要实现的目标,请看下面的例子:



$('#test').on('click', function (e) {
    $("input").each(function () {
        if ($(this).val().length === 0) 
        {
          $(this).addClass('input-error');
        } else {

            var upper = parseInt($(this).prev().prev().text());
            var lower = parseInt($(this).prev().text());
            var current_value = parseInt($(this).val());

            if (current_value != (upper-lower)){
                $(this).addClass('input-error');
            }else{
                $(this).removeClass('input-error');
            }
        }
    });
});

.input-error {
  background: red;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="upper">5</div>
<div class="lower">2</div>
<input type="text" id="txt1">
<hr />
<div class="upper">7</div>
<div class="lower">3</div>
<input type="text" id="txt2">
<hr />
<div class="upper">200</div>
<div class="lower">66</div>
<input type="text" id="txt3">
<hr />
<br />
<button type='button' id="test">Test</button>
&#13;
&#13;
&#13;