如果选择了该行中的特定下拉列表,我只需要在每一行中都有一个字段。因此,如果选择值1,则禁用它。
以下是我所拥有的:
Jquery的:
<script>
$(document).ready(function () {
$('.Selecter').change(function () {
var $this = $(this);
var $row = $this.closest("tr").find('.accountNumber');
if (this.value == "1") {
$('#row').attr("disabled", "disabled");
} else {
return false;
}
});
});
</script>
HTML:
<table>
<tr>
<td>
<select id="Select1" class="Selecter">
<option value="">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</td>
<td>
<input type="text" class="accountNumber"/>
</td>
</tr>
<tr>
<td>
<select id="select2" class="Selecter">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</td>
<td>
<input type="text" class="accountNumber" />
</td>
</tr>
</table>
答案 0 :(得分:2)
试试这个:
Jsfiddle:https://jsfiddle.net/vLx658of/
$(document).ready(function () {
$('.Selecter').change(function () {
var $this = $(this);
console.log($this.val())
var $row = $this.closest("tr").find('.accountNumber');
if ($this.val() == "1") { // use $this.val()
$row.attr("disabled", "disabled"); // use $row here because you want to disable selected row field
} else {
return false;
}
});
});
答案 1 :(得分:1)
$row
方法时使用.attr
,因为$('#row')
DOM
元素
.prop
代替.attr
$row.prop("disabled", this.value == "1");
.change()
来调用处理程序。$('.Selecter').change(function() {
$(this).closest("tr").find('.accountNumber').prop("disabled", this.value == "1");
}).change();
$('.Selecter').change(function() {
$(this).closest("tr").find('.accountNumber').prop("disabled", this.value == "1");
}).change();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table>
<tr>
<td>
<select id="Select1" class="Selecter">
<option value="">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</td>
<td>
<input type="text" class="accountNumber" />
</td>
</tr>
<tr>
<td>
<select id="select2" class="Selecter">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</td>
<td>
<input type="text" class="accountNumber" />
</td>
</tr>
</table>
&#13;
答案 2 :(得分:1)
你可以,
$('.Selecter').change(function() {
var val = $(this).val();
if (val == 1) {
$(this).closest("tr").find(".accountNumber").prop("disabled", true);
} else {
$(this).closest("tr").find("accountNumber").prop("disabled", false);
}
});
您的代码存在问题,您将当前行的帐号转换为名为$row
的变量,但在下一行中您只使用了选择器&#39;#row&#39;与前一行没有任何关系。