JQuery和Checkboxes

时间:2013-03-06 12:53:19

标签: jquery input checkbox

我遇到了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>

可能有什么问题我没有得到,但是当我点击一个复选框时,它会禁用第一个文本,如果我将其解密,则在检查另一个文本之前不会发生任何事情。

谢谢你的时间!!!

3 个答案:

答案 0 :(得分:2)

你需要

 var i = $(this).val();

而不是

var i = $("input:checked").val();

Live Demo

$("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");
});

因为只有在选中它才会获得价值。取消选中该复选框后,它将显示未定义