尝试检查文本字段是否包含文本,然后根据检查启用/禁用提交

时间:2013-06-09 03:16:43

标签: jquery html forms properties prop

就像标题所说,我有一个表单的提交按钮,我想要禁用,除非文本框中有文本。该字段已正确禁用,但输入文本后,提交仍保持禁用状态。

这是HTML:

<form method="get" action="#">
    <input type="text" id="edit-combine" name="combined"/>
    <input type="submit" id="edit-submit-clone-of-combined-search" value="search"/>
</form>

这是jquery:

 if($('#edit-combine').val().length == 0){
            $('#edit-submit-clone-of-combined-search').prop("disabled", true);
    }else{
        $('#edit-submit-clone-of-combined-search').prop("disabled", false);
    }

我为此制作了一个JSFiddle:http://jsfiddle.net/CR47/ZUmCp/

2 个答案:

答案 0 :(得分:5)

不幸的是HTML / Js不知道你的意图。因此,您需要通过将逻辑附加到绑定到文本框的事件处理程序来帮助它们,就像您的案例中的keyup事件一样。

$('#edit-combine').on("keyup", function () {
      $('#edit-submit-clone-of-combined-search')
                    .prop("disabled", 
                            $('#edit-combine').val().length == 0);
}).keyup();

Demo

值得一看:

keyup

Change

答案 1 :(得分:0)

您的起始状态取决于文本框中是否存在文本。之后,您可以通过根据文本框中文本的存在更改其状态来响应文本框上的更改事件。您未能将代码附加到文本框的更改事件中。

您不应该像其他海报所说的那样回应键盘事件,因为用户可以使用鼠标将值粘贴到文本框中。回应变化事件,一切都将为最好的锻炼。相信我,我是一名专业人士:)