我正在使用dojo 1.5。我想在按钮单击时对文本字段进行dojo自定义验证(它不是提交按钮)。 我正在使用“dijit.form.ValidationTextBox”。
如果我们将按钮类型更改为提交,则dojo验证正在运行。但如果我们将其更改为按钮则不会。
您可以在此处找到测试代码:sample code
请告诉我如何在点击按钮上验证文本按钮。
以下是我的代码:
dojo.require("dojo.parser");
dojo.require("dijit.form.Form");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.ValidationTextBox");
function validateForm()
{
// Here I want to validate text box.
}
<table style="border: 1px solid #9f9f9f;" cellspacing="10">
<tr>
<td>
<label for="name">Name:</label>
</td>
<td>
<input type="text" id="name" name="name" required="true" data-dojo-type="dijit/form/ValidationTextBox" />
</td>
</tr>
<tr>
<td>
<label for="dob">Date of birth:</label>
</td>
<td>
<input type="text" id="dob" name="dob" data-dojo-type="dijit/form/DateTextBox"/>
</td>
</tr>
</table>
<button data-dojo-type="dijit/form/Button" type="button" onClick="return validateForm()">Validate Form</button>
答案 0 :(得分:1)
你为什么不经历这个Documentation
答案 1 :(得分:1)
你提供的小提琴有几个问题,但首先是一些背景:
在Dojo 1.5及更早版本中,模块(dijits / widgets等)的命名和加载方式与1.6及更高版本略有不同。所以在Dojo&lt; = 1.5中,你会看到类似的东西:
<button dojoType="dijit.form.Button" ... />
...
dojo.require("dijit.form.Button");
dojo.addOnLoad(function() { ... });
在Dojo 1.6及更高版本中,模块被重写为称为AMD格式(异步模块加载器)的东西。 HTML标记中的“dojo属性”也有所改变,以符合标准。因此,除了上述内容之外,您还会看到以下内容:
<button data-dojo-type="dijit/form/Button" ... />
...
require(["dijit/form/Button", "dojo/domReady!"], function(Button) { ... });
(但是,您仍然可以在1.6中使用旧格式,但它或多或少被视为已弃用。)
现在,在你的小提琴中,你混合了两种方法。因此,您使用dojo.require("some.thing")
,还使用data-dojo-type="some/thing"
属性。这会导致一些问题。
但是,这不是你的问题:)你想知道如何在按钮点击时运行验证器。在您的代码中,它只是获取表单并运行其validate()
方法,如下所示:
window.validateForm = function validateForm()
{
var form = dijit.byId("myForm");
if(form.validate()) {
console.info("It was valid!");
} else {
console.warn("It was not valid!");
}
}
(表单还有isValid()
方法,用于检查有效性,但不会触发视觉提示/警告。)
我希望能够解决问题!以下是修补程序的小提琴:http://jsfiddle.net/CQ93P/4/
答案 2 :(得分:0)
如果要在单击按钮上验证表单而不是“提交”按钮,请参阅以下代码段。
window.validateForm = function validateMyForm()
{
var myForm = dijit.byId("myForm");
if(myForm.validate())
console.log("The form validation success..");
else
console.log("The form validation failed..");
}