2011-10-02 56 views
1

我有一個包含兩個單選按鈕的表單,我希望在單選按鈕被選中時啓用相應的域。我的代碼只是不工作,那就是:單選按鈕啓用表單域

<head> 
<script type="text/javascript" src="jquery.js"></script>   
<script type="text/javascript"> 
$(document).ready(function() { 

    var $type = $('select'), 
     $field1 = $("#fieldID1"), 
     $field2 = $("#fieldID2"); 

    $type.change(function() { 

     var isDisabled = ($type.filter(":checked").val() === "1"); 

     $field1.prop("disabled", !isDisabled); 
     $field2.prop("disabled", isDisabled); 

    }).change(); 
}); 
</script> 
</head> 

我的HTML身體就像:

<body> 

<form action="" method="post"> 

<input type="radio" name="select" value="1" /> 
<input type="text" name="fieldID1" id="fieldID1"/> 

<input type="radio" name="select" value="2" /> 
<table id="fieldID2"> 
    <tr>...</tr> 
    <tr>...</tr> 
    ... 
</table> 

<input type="submit" value="Add"> 
</form> 
</body> 

我從this post引用的代碼。任何人都可以指出我的問題是什麼,我對jQuery不太瞭解,謝謝!

仍無法修復......

+0

你必須通過名稱來選擇:'輸入[名稱= 「選擇」]'。 –

+0

它與剛纔使用$('select')相同,我試過了。 – Michael

回答

1
$fieldID1.prop("disabled", !isDisabled); 
    $fieldID2.prop("disabled", isDisabled); 

也許應該是:

$field1.prop("disabled", !isDisabled); 
    $field2.prop("disabled", isDisabled); 
+0

對不起,我的壞,它的錯字。修復。 – Michael

0
$(document).ready(function() { 

    var $type = $(':radio[name="select"]'), 
     $field1 = $("#fieldID1"), 
     $field2 = $("#fieldID2"); 

    $type.change(function() { 

     var isDisabled = ($type.filter(":checked").val() === "1"); 

     $field1.prop("disabled", !isDisabled); 
     $field2.prop("disabled", isDisabled); 

    }).change(); 
}); 
+0

$ type的定義變化沒有任何區別〜 – Michael

+0

您是否收到任何錯誤?檢查http://jsfiddle.net/Fnhan/1/ –

+0

沒有錯誤返回在我的網頁上,它似乎JavaScript只是沒有工作... – Michael