如果至少填充了一个输入字段,则更改jQuery类,然后在另一个(隐藏)字段中更改值

时间:2013-12-28 08:28:38

标签: jquery

此处http://jsfiddle.net/MFa6Q/放置了示例

有多个输入字段。

在每次更改输入字段(用户在输入字段中键入或删除)时,要检查特定行的所有其他输入字段。如果至少有一个输入字段被填充(非空),则更改另一个(隐藏)输入字段中的值。

这是我的代码

HTML

<table>

<tr id='row78'>

<td class="dropdown">
<select name="currency[]" id="currency78" class="row_changed78 row_changed_currency78">
<option value=""> </option>
<option value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
</select>
</td>

<td><div style="width:80px; border:0px solid #F1F1F1;">
<input type='text' name='transaction_partner_registration_number[]' id='transaction_partner_registration_number78' class='row_changed78' value='' size='' style='width:80px;'>
</div></td>


<td>
<input type="text" name="is_row_changed[]" id="is_row_changed78" size="" value="" style='width:30px;'>
</td>

<td>
<input type="text" name="is_row_changed_not_empty[]" id="is_row_changed_not_empty78" size="" value="" style='width:30px;'>
</td>

</tr>

</table>

jquery的

<script>
$( document ).ready(function() {


$(".row_changed78").on("change", function () {
document.getElementById('is_row_changed78').value = 1;
});



$(".row_changed78").on("change", function () {


$(".row_changed78").find('input[type=text], select').each(function(){

if($(this).val() != "" ) {
document.getElementById('is_row_changed_not_empty78').value = 1;
}

});


});



});//document ready
</script>

对于必要的输入字段,我定义了class="row_changed78"。并且jQuery检查输入字段中的值是否随class="row_changed78"更改。如果值已更改,则需要检查该行的所有其他字段。如果至少填写了一个字段,则更改id="is_row_changed_not_empty78"中的值。

id="is_row_changed78"的所有工作(如果值已更改)。但不适用于id="is_row_changed_not_empty78"

1 个答案:

答案 0 :(得分:1)

删除.find('input[type=text], select')并且它有效。因为所有输入和选择都已经有row_changed78类,所以.find()变空。只使用:

 $(".row_changed78").each(function () {

我的建议:

$(".row_changed78").on("change", function () {
    var flag = '';
    $(".row_changed78").each(function () {
        if (this.value != "") {
            flag = 1;
        }
    });
    document.getElementById('is_row_changed_not_empty78').value = flag;
    document.getElementById('is_row_changed78').value = 1;
});

Demo