2013-07-27 36 views
1

我發佈了以下用於禁用表格文本字段的代碼。現在如何修改它,以便它也禁用字段的文本字段說id = name = usn。如何使用jquery一次禁用表字段和文本字段?

jQuery(document).ready(function ($) { 
// Disabling Text Fields by default 
$("table input[type='text']").each(function() { 
    $(this).attr("disabled", "disabled"); 
}); 

$(".inputradio1 input[name=select1]").change(function() { 
    var val = $(this).val(); 
    if (val == "No") { 
     $("table input[type='text']").each(function() { 
      $(this).attr("disabled", "disabled"); 
     }); 
    } else if (val == "Yes") { 
     $("table input[type='text']").each(function() { 
      $(this).removeAttr("disabled"); 
     }); 
    } 
}); 
}); 
+0

若要根據ID或名稱? – Harry

回答

2

改爲使用prop('disabled',true)。 自jQuery 1.6/1.7版本以來,爲了區分屬性和屬性進行了一些更改。此外,還有不需要的循環,你可以把它應用到整個匹配的元素:

$("table input[type='text']").prop('disabled', true); 

使用以下也將讓您選擇更快&短閱讀:

$("table :text").prop("disabled", true); 

所以最後,你留下的是:

$("table :text").prop("disabled", true); 

$(".inputradio1 input[name=select1]").change(function() { 
    $("table :text").prop('disabled', $(this).val() === 'No'); 
}); 
+0

但是場USN是使直到現在 –

+0

我不知道,你可以使用':text'它自己這樣。好的提示。 – cgTag

1

我不知道我理解這個問題。

使用prop()代替。

要禁用如果idnameusn

// id's are suppose to be unique. no need for complex find 
$("#usn, table input[name='usn']").prop("disabled",true); 

編輯:

jQuery(document).ready(function ($) { 
    // Disabling Text Fields by default 
    $("table input[type='text']").prop('disabled',true); 
    $("#usn, table input[name='usn']").prop("disabled",true); 

    $(".inputradio1 input[name=select1]").change(function() { 
     val disable = $(this).val() == "No"; 
     $("table input[type='text']").prop("disabled",disable); 
     $("#usn, table input[name='usn']").prop("disabled",disable); 
    }); 
}); 
+0

你是正確的,但我想合併這兩個...即$(「#USN,表輸入[名稱=‘USN’]」)丙(「已禁用」,真)。和$(「table:text」)。prop('disabled',$(this).val()==='No'); –

+0

日Thnx的幫助.. –

+0

@SakirAlam我不知道我的理解,但我的編輯更接近你需要什麼? – cgTag

1

是朋友,我做到了......

你想
$("table :text").prop("disabled", true); 

$(".inputradio1 input[name=select1]").change(function() { 
$("#usn, table input[name='usn']").prop('disabled', $(this).val() === 'No') && $("table :text").prop('disabled', $(this).val() === 'No'); 
}); 
+0

啊好吧,但你不需要'&&' – cgTag