我遇到了Jquery和Checkboxes的问题。 例如,我有这个:
<input type="checkbox" name="guest" value="1" />
<input type="checkbox" name="guest" value="2" />
<input type="checkbox" name="guest" value="3" />
<input type="text" id="player-1" />
<input type="text" id="player-2" />
<input type="text" id="player-3" />
我的问题以及我一直在寻找的是如何使用JQuery禁用输入[type = text]。
这是我的代码:
<script>
$("input").on("click", function() {
var i = $("input:checked").val();
if(this.checked)
$("#player-"+i).attr("disabled", "disabled");
else
$("#player-"+i).removeAttr("disabled");
});
</script>
可能有什么问题我没有得到,但是当我点击一个复选框时,它会禁用第一个文本,如果我将其解密,则在检查另一个文本之前不会发生任何事情。
谢谢你的时间!!!
答案 0 :(得分:2)
你需要
var i = $(this).val();
而不是
var i = $("input:checked").val();
$("input").on("click", function () {
var i = $(this).val();
if (this.checked) $("#player-" + i).attr("disabled", "disabled");
else $("#player-" + i).removeAttr("disabled");
});
答案 1 :(得分:1)
您可以使用jQuery prop
方法启用/停用输入:
$("input").prop('disabled', true);
$("input").prop('disabled', false);
为您的例子:
$("#player-" + i).prop('disabled', this.checked);
答案 2 :(得分:0)
问题在于$("input:checked").val()
。
将此更改为,
$("input").on("click", function () {
var i = $(this).val();
if (this.checked)
$("#player-" + i).attr("disabled", "disabled");
else
$("#player-" + i).removeAttr("disabled");
});
因为只有在选中它才会获得价值。取消选中该复选框后,它将显示未定义。