2014-01-31 52 views
0

我有兩個單選按鈕。當用戶點擊是時,所有的字段都可以輸入。當用戶單擊「否」單選按鈕時,所有字段都將禁用。我不能禁用多個字段使用jquery

問題:我正在使用jquery,但它只允許我一次禁用一個字段。有沒有解決辦法。繼承人的代碼。下面

代碼: http://jsfiddle.net/moehammoud/YBe64/1/

它適用於第一場,但是當我開始嘗試做單選按鈕會影響它不會在所有

$(function(){ 
$("#test-y, #test-n").change(function(){ 
    $("#field1", "#field2").attr("disabled",true); 
    if($("#test-y").is(":checked")){ 
     $("#field1", "#field2").removeAttr("disabled"); 
     $("#field1", "#field2").css("background-color","#CCCECA"); 
    } 
    else if($("#test-n").is(":checked")){ 
     $("#field1", "#field2").attr("disabled"); 
     $("#field1", "#field2").css("background-color","gray"); 
    } 
}); 

應用多個領域} );

http://jsfiddle.net/moehammoud/PM69z/1/

我想這8場工作,並提交按鈕。

這段代碼對我來說是最容易理解的。如果有人知道這個特定級別的代碼的修復,將是真棒,任何想法將不勝感激

謝謝大家。 萌

回答

1

您有選擇在jQuery的多個元素的語法不正確。如果你想選擇#field1#field2,語法是:

$("#field1, #field2") 

當你寫$("#field1", "#field2"),這相當於$("#field2").find("#field1")

如果您反覆選擇多個這樣的ID,您可能應該給他們一個類,以便您可以在選擇器中指定類名,而不是單獨列出所有ID。

+0

感謝堆!那工作的一種享受。表格現在就開始生效了。再次感謝! :d –

0

應該

$(function() { 
    $("#test-y, #test-n").change(function() { 
     var checked = $("#test-y").is(":checked"); 
     $("#field1, #field2").prop("disabled", checked).css("background-color", checked ? "#CCCECA" : "gray"); 
    }); 
}); 

演示:Fiddle

問題

0
$("#field1", "#field2").attr("disabled" , true); 

是不是你想要的正確方法。我建議你使用類和/或名稱屬性。您也可以通過調用加載功能

$("input[name=test]").change(); 

這會減少代碼。

$(function() { 
$("input[name=test]").change(function() { 
    if($("#test-y").prop("checked") == true) { 
     $(".field").prop("disabled" , false); 
     $(".field").css("background-color" , "#ccceca"); 
     } 
    else { 
     $(".field").prop("disabled" , true); 
     $(".field").css("background-color" , "gray"); 
     } 
    }); 
$("input[name=test]").change(); 
}); 

http://jsfiddle.net/Dinizworld/Ckz8c/

相關問題