2013-03-06 114 views
1

我遇到了Jquery和Checkboxes的问题。 例如,我有这样的:JQuery和复选框

<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。

这是我的代码:

<script> 
$("input").on("click", function() { 
var i = $("input:checked").val(); 
if(this.checked) 
$("#player-"+i).attr("disabled", "disabled"); 
else 
$("#player-"+i).removeAttr("disabled"); 
}); 
</script> 

,愿你有什么东西错了,我不明白,但是当我点击一个复选框,它禁用第一个文本,如果我decheck吧,没什么happends直到我查一个另一个。

感谢您的时间!

回答

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"); 
}); 
+0

谢谢!我用你的评论和我的作品。我也应用了来自用户的部分代码未定义,并且工作。 – Ardilla 2013-03-06 13:01:43

1

您可以启用/与jQuery prop方法禁用输入:

$("input").prop('disabled', true); 
$("input").prop('disabled', false); 

您例如:

$("#player-" + i).prop('disabled', this.checked); 
+0

谢谢你,下次我会使用prop()的这个功能! – Ardilla 2013-03-06 13:03:38

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

因为它只有当它被选中的值。当您取消选中该复选框时,它将显示undefined

+0

是的,当我检查它时,它给了我不确定性。感谢所有人,现在它正在工作=) – Ardilla 2013-03-06 13:05:31

+0

@Ardilla欢迎 – 2013-03-06 13:10:12