我试图在这个例子上做一些javascript工作:
var str= '<td><input id="product" type="checkbox" name="product' + i + '" value="Yes" /> new product?</td>';
str = str+'<td><input type="text"class="form-control" id="number ' + i + '" name="number' + i + '" placeholder="GTIN"</td>'
<script>
$(document).ready(function () {
var ckbox = $('#product');
$('input').on('click', function () {
if (ckbox.is(':checked')) {
document.getElementById("number").readOnly = true;
document.getElementById("number").value = "";
} else {
document.getElementById("number").readOnly = false;
}
});
});
</script>
只有当我的输入复选框位于字符串构建器
之外时,这似乎才有效答案 0 :(得分:2)
如果我正确理解了您的问题,那么您正在尝试检查是否选中了作为字符串创建的输入。为此,您可以尝试这样的事情:
HTML
<div id="number">
<table id='mytable'>
</table>
</div>
JS
var str;
for(var i = 0; i < 4; i++){
str = '<td><input id="product'+i+'" type="checkbox" checked name="product' + i + '" value="Yes" />new product?';
str = str+'<td><input type="text"class="form-control" id="number ' + i + '" name="number' + i + '" placeholder="GTIN" data-checkbox-id="product'+i+'"></td>'
$("#mytable").append(str);
}
$("[id*='product']").on("click", function(){
var this_id = $(this).attr("id");
if( $(this).is(":checked") )
$("input[data-checkbox-id='"+this_id+"']").removeAttr("disabled");
else
$("input[data-checkbox-id='"+this_id+"']").attr("disabled", "disabled");
});
检查小提琴:https://jsfiddle.net/koky7zj1/11/
那是你要找的吗?
修改强>
查看更新的代码。我很高兴能帮到你! :)