如果某些输入字段未填写,如何禁用按钮?

How to disable the button if some input field is not filled?

IBM web experience factory使用dojo库,我想知道我在consumer model中设置<input type="text" name="usrname" required>,如果输入不填,按钮是否仍然有效?

好吧,HTMLFormElement 有一个名为 checkValidity() 的方法,您可以使用它。

因此,在您的情况下,您可以使用 :input select 或 dojo/query 来查询表单内的所有输入元素(包括按钮、复选框、文本字段、文本区域和 select 框),然后使用 onChange 事件检查表单是否有效并更改按钮 disabled 属性。

例如:

query("[name=myForm] :input").on("change", function(evt) {
    var isInvalid = !evt.target.form.checkValidity();
    query("button[type=submit]").attr("disabled", isInvalid);
});

现在您需要做的就是确保您的按钮最初 disabled/enabled 取决于表单的初始状态。

可以在 JSFiddle 上找到完整的示例:http://jsfiddle.net/j8L6j77g/