2010-08-30 79 views
3

我正在寫一些JavaScript來處理動態啓用表單提交按鈕時,一些文本輸入到關聯的文本字段中的常見情況。我一直在使用Prototype框架多年,但正在轉向jQuery。所以我很驚訝地發現我的代碼的jQuery版本看起來很笨重。規範的jQuery方法來動態啓用/禁用表單提交按鈕

有沒有辦法避免在我的jQuery代碼中引用第零個數組元素,或者一般來說更規範的jQuery方法?

<form action="..."> 
    <input id="subject" type="text" /> 
    <input id="save" type="submit" value="Save" disabled="disabled" /> 
</form> 
<script type="text/javascript"> 

    // Prototype version 
    $("subject").observe("keyup", function() { 
    $("save").disabled = $("subject").value.length == 0; 
    }); 

    // jQuery version 
    $("#subject").keyup(function() { 
    $("#save")[0].disabled = $("#name")[0].value.length == 0; 
    }); 
</script> 

回答

4

在jQuery中,使用attr方法在元素上設置屬性。通過在jQuery集中獲取第一個項目[0],您直接操作本地DOM元素的disabled屬性 - 這不是jQuery。

$("#save").attr('disabled', true); 

$("#subject").keyup(function() { 
    $("#save").attr('disabled', $("#name").val().length == 0); 
}); 
+0

很好,謝謝。 – 2010-08-30 18:34:26

+0

不客氣,歡呼! – Anurag 2010-08-30 18:47:27