检查所有子输入字段是否有值。

3
我想要在更改输入后检查同一行的所有输入字段是否都有值:
HTML
<tr>
    <td><input type="text"></td>
    <td><input type="text"></td>
    <td><input type="text"></td>
</tr>

JS

$(this).find('input').each (function() {

});

所以,如果所有输入字段都有值,我想发送true,否则发送false。
2个回答

3
像这样的东西也许可以吗?
var valid = true;
$(this).find('input').each (function() {
  if ($(this).value().length == 0) {
    valid = false;
  }
});

这样能行吗?

编辑

这是我的代码以及它的工作原理:https://jsfiddle.net/3748str4/ - 请注意,事件是在“更改”上触发,这意味着您需要点击字段以外的区域才能激活事件。


1
你可以这样做:

var nInputs = $('input', this).length,
    nVals   = $('input', this).filter(function() {
        return !!this.value.trim();
    }).length;
if( nVals === nInputs ) {
    //all inputs have values;
}

$(function() {
    $('#check').on('click', function() {
        $('tr').each(function(i,v) {
            console.log( 'Row ' + i );
            var inputs = $('input', this),
                nVals = inputs.filter(function() { return !!this.value.trim(); }).length;
            if( nVals === inputs.length ) {
                console.log( 'All inputs have values' );
            } else {
                console.log( nVals + '/' + inputs.length + ' have values' );
            }
        });
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr>
    <td><input type="text"></td>
    <td><input type="text"></td>
    <td><input type="text"></td>
   </tr>
  <tr>
    <td><input type="text"></td>
    <td><input type="text"></td>
    <td><input type="text"></td>
  </tr>
  <tr>
    <td><input type="text"></td>
    <td><input type="text"></td>
    <td><input type="text"></td>
  </tr>
</table>
<button id="check">Check</button>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接