1

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でinput [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>

何か問題があるかもしれませんが、チェックボックスをクリックすると最初のテキストが無効になります。チェックを外すと、もう一方のテキストをチェックするまで何も起こりません。

御時間ありがとうございます!!!

4

3 に答える 3

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");
});
于 2013-03-06T12:56:44.343 に答える
1

jQuerypropメソッドを使用して入力を有効/無効にできます。

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

あなたの例のために:

$("#player-" + i).prop('disabled', this.checked);
于 2013-03-06T12:55:28.517 に答える
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が表示されます。

于 2013-03-06T13:00:31.113 に答える