检查输入字段的值

时间:2016-07-01 13:14:48

标签: javascript jquery input

我有这样的结构。在按钮上单击jquery代码,如果字段为空,则使输入的边框为红色。第一排一切正常。在其他行中,即使我输入有效值,按钮点击后行边框也会变为红色。



$('.btn-submit').click(function(){
  var value = $(':input').val();
  if(!value.length) {
    $(this).parents('.row').find(':input').css('border-color','#f00');
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='row'>
  <input>
  <button class='btn-submit'>Check</button>
</div>
<div class='row'>
  <input>
  <button class='btn-submit'>Check</button>
</div>
<div class='row'>
  <input>
  <button class='btn-submit'>Check</button>
</div>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:1)

改变你的JS代码:

$('.btn-submit').click(function(){
    var value = $(this).parent().find('input').val();
    if(!value.length) {
        $(this).parents('.row').find(':input').css('border-color','#f00');
    }
});

您的问题:

您选择所有<inputs/>而不是最接近的。

答案 1 :(得分:0)

试试这个:

$('.btn-submit').click(function(){
        var value = $(this).parent().find("input").val();
        if(!value.length) {
            $(this).parent().find(':input').css('border-color','#f00');
        }
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class='row'>
 <input>
 <button class='btn-submit'></button>
</div>
<div class='row'>
 <input>
 <button class='btn-submit'></button>
</div>
<div class='row'>
 <input>
 <button class='btn-submit'></button>
</div>

答案 2 :(得分:0)

点击任何按钮时,它会检查第一个 <input>的值。

更改此行:

var value = $(':input').val();

对此:

var value = $(this).prev(":input").val();

这应该直接在按钮之前选择<input>元素。

另一个提示:您似乎尝试使用jQuery查找输入。相反,您可以使用类似prev()的内容找到兄弟(这将适用于您的情况)。

答案 3 :(得分:0)

您的问题是您正在查看所有输入,而不仅仅是按钮的兄弟。 请尝试使用此JavaScript:

$('.btn-submit').click(function(){
    var value = $(this).parent().find('input').val();
    if(!value.length) {
        $(this).parents('.row').find(':input').css('border-color','#f00');
    }
});

Here is the fiddle