2010-08-30 32 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