我遇到了一个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禁用inputtype=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>可能有一些我不明白的错误,但是当我点击一个复选框时,它会禁用第一个文本,如果我取消选中它,在我选中另一个文本之前,什么都不会发生。
感谢您的宝贵时间!
发布于 2013-03-06 20:56:44
你需要
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");
});发布于 2013-03-06 20:55:29
您可以使用jQuery prop方法启用/禁用输入:
$("input").prop('disabled', true);
$("input").prop('disabled', false);对于您的示例:
$("#player-" + i).prop('disabled', this.checked);发布于 2013-03-06 21:00:31
问题出在这一行的$("input:checked").val()上。
将此更改为,
$("input").on("click", function () {
var i = $(this).val();
if (this.checked)
$("#player-" + i).attr("disabled", "disabled");
else
$("#player-" + i).removeAttr("disabled");
});因为它只有在被选中时才会获得值。取消选中该复选框时,将显示未定义的。
https://stackoverflow.com/questions/15247862
复制相似问题