Dojo 在验证之前禁用提交按钮

Dojo 在验证之前禁用提交按钮,dojo,Dojo,是否有一种方法可以使用dojo/dijit禁用submit按钮,直到表单中的所有字段都有效。有点像表单中有一个dojo>method>onChange?因此,只有当所有表单元素都满足其条件时,“提交”按钮才会启用?我建议使用一个隐藏按钮来提交表单。单击visbile按钮时,运行验证所有输入的javascript函数,然后单击隐藏按钮提交表单。请在下面找到伪代码 <form action="register"> <input dojoType="dijit.val

是否有一种方法可以使用dojo/dijit禁用submit按钮,直到表单中的所有字段都有效。有点像表单中有一个
dojo>method>onChange
?因此,只有当所有表单元素都满足其条件时,“提交”按钮才会启用?

我建议使用一个隐藏按钮来提交表单。单击visbile按钮时,运行验证所有输入的javascript函数,然后单击隐藏按钮提交表单。请在下面找到伪代码

    <form action="register">
    <input dojoType="dijit.validation.TextBox"/>
    <button onClick="validateall()">submit</button>
    <button id="submitForm" type="submit" hidden="true"/> 
    </form> 

    function validateAll(){
      if(AllOk){
             clearErrorMessage();
             dojo.byId('submitForm').click();
    }else{
     showErrorMessage();
   }

提交
函数validateAll(){
如果(AllOk){
clearErrorMessage();
byId('submitForm')。单击();
}否则{
发送消息();
}

您是否使用
dijit.form.form
小部件作为表单?如果是,我建议连接到
表单
onValidStateChange
事件。此事件的详细说明了您的用例:

onValidStateChange
Defined by dijit.form._FormMixin
Stub function to connect to if you want to do something (like disable/enable a submit button) when the valid state changes on the form as a whole. Deprecated. Will be removed in 2.0. Use watch("state", ...) instead.

查看给定小部件的可用事件的最佳方法是在“事件摘要”标题下查看您感兴趣的小部件的事件摘要。dojocampus参考文档通常会省略一些示例,以参考小部件的一些更模糊的功能。

you DA MAN!!!!(虽然我怎么知道
onValidStateChange
存在?有没有列出
dojo>方法
函数的地方?)您主要需要查看API文档,它们非常出色地解释了每个属性/方法/事件对给定小部件的作用。