禁用提交按钮直到验证
问题描述:
有没有办法使用dojo/dijit来禁用提交按钮,直到表单中的所有字段都有效。有点像在表格里面有dojo > method > onChange
?那么只有在所有表单元素符合条件时才能启用提交按钮?禁用提交按钮直到验证
答
您是否使用dijit.form.Form
小部件作为窗体?如果你是,我会建议连接到Form
的onValidStateChange
事件。该docs此事件具体说明你的使用情况:
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.
,看看有什么活动都可以在给定插件的最好办法是看API Documentation因为你是“事件摘要”下感兴趣的小工具标题。 dojocampus参考文档经常会留下一些示例,以引用小部件的一些更加模糊的特征。
答
我会建议有一个隐藏的按钮,将提交表单。当你点击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();
}
你达人!!!! (尽管我应该怎么知道'onValidStateChange'存在?有没有地方可以列出'dojo>方法'函数???) – Sevenearths
你大多需要看API文档,他们做了一个相当不错的工作来解释什么每个属性/方法/事件对于给定的小部件都会执行。 – BuffaloBuffalo