就像标题所说,我有一个表单的提交按钮,我想要禁用,除非文本框中有文本。该字段已正确禁用,但输入文本后,提交仍保持禁用状态。
这是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/
答案 0 :(得分:5)
不幸的是HTML / Js不知道你的意图。因此,您需要通过将逻辑附加到绑定到文本框的事件处理程序来帮助它们,就像您的案例中的keyup事件一样。
$('#edit-combine').on("keyup", function () {
$('#edit-submit-clone-of-combined-search')
.prop("disabled",
$('#edit-combine').val().length == 0);
}).keyup();
值得一看:
答案 1 :(得分:0)
您的起始状态取决于文本框中是否存在文本。之后,您可以通过根据文本框中文本的存在更改其状态来响应文本框上的更改事件。您未能将代码附加到文本框的更改事件中。
您不应该像其他海报所说的那样回应键盘事件,因为用户可以使用鼠标将值粘贴到文本框中。回应变化事件,一切都将为最好的锻炼。相信我,我是一名专业人士:)