2013-03-06 113 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