我试图在用户选中复选框时禁用文本框。jquery禁用使用复选框的文本框(复选框为多个文本框)
我已经完成了一个单一的文本框和复选框。
我现在卡住了什么,如果用户可以添加多个文本框与复选框?
这里是我的输出看起来到目前为止。
什么我的输出具有的是,每当我剔的复选框残疾人ATTR只是切换上一个文本框到另一个。
我想要做的是,当复选框被选中时,文本框仍然保持禁用,直到我取消其各自的复选框。
这是我编码到目前为止。
HTML
<div id="operator_properties">
<label for="operator_title">Operator's title: </label> <input type="text" id="operator_title">
<br /><br />
<button id="append" class="btn btn-primary">Add Connectors</button>
<br /><br />
<div class="col-md-10">
<div id="parent"></div>
</div>
<div class="clearfix"></div>
<hr />
<div class="col-md-12">
<button class="btn btn-success" id="operator_btn">
Confirm
</button>
</div>
<div class="clearfix"></div>
</div>
jQuery的
$(function() {
var count = 1;
$('#append').click(function() {
$('#parent').append('<div class="operator"> <div class="row"> <div class="col-md-2"><input type="text" id="input' + count + '" class="input-text" placeholder="Input' + count + ' title"><br /> <input type="checkbox" id="disableinput' + count + '" class="disable-input" /><label for="disableinput' + count + '" style="vertical-align: middle;"> Disable</label> </div>   <div class="col-md-3"><input type="text" id="output' + count + '" class="output-text" placeholder="Output' + count + ' title"> <a href="#" id="' + count + '" class="remove">Remove</a> <br /> <input type="checkbox" id="disableoutput' + count + '" class="disable-output" /><label for="disableoutput' + count + '"style="vertical-align: middle;"> Disable</label></div></div></div>');
count++;
});
});
$(document).on('click', '.remove', function() {
$(this).closest("div.operator").remove();
});
$(document).on('change', '.disable-input', function() {
$("#parent").find("input.input-text").attr("disabled", false);
if ($(this).is(":checked"))
$(this).parent().find("input.input-text").attr("disabled", true);
//console.log('working');
});
在先进的感谢!
这适用所有使!谢谢!你救了我的屁股! – Terence
你甚至可以用'.siblings(“input.input-text”)'切换'.parent()。find(“input.input-text”)',因为它处于同一级别([ ](http://api.jquery.com/siblings/)) –
@DouwedeHaan - 真的。但我更喜欢'.closest(...)。find(...)',而不是'.parent()。find(...)'或'.siblings()',因为如果你决定修改HTML以在任一元素周围添加额外的封装元素(或者将其中的任意一个添加到其标签内),JS将继续工作而不需要修改。 – nnnnnn