我正在构建注册表并计划使用dojox.form.PasswordValidation来验证输入的密码是否相同。有没有办法以编程方式使用dojox.form.PasswordValidation?如果我这样做:
<div id="sample">
<input type="password" pwType="new" />
<input type="password" pwType="verify" />
</div>
<script>
var a = new dojox.form.PasswordValidation({}, "sample");
</script>
上面的代码按预期工作,但我想剥离那些“pwType”标记并仅创建纯HTML标记。如果我这样做,我应该在哪里放“pwType”?
P.S。我正在使用Dojo 1.6
答案 0 :(得分:0)
不幸的是,看起来这个小部件与最近的更改并不是最新的,其中dojo尝试将所有无效的html属性移动到有效的data- *属性中。在查看该窗口小部件的postCreate
方法时,它的代码位于其中间:
dojo.forEach(["old","new","verify"], function(i){
widgets.push(dojo.query("input[pwType=" + i + "]",
this.containerNode)[0]);
}, this);
之后它确保它找到了必要的输入,否则会引发错误。
因此,如果您想使用pwType
属性之外的其他内容,那么您可能必须覆盖此小部件的postCreate方法以查询其他内容,例如:
dojo.query("input[data-dojo-password-type=" + i + "]")
然后您可以在data-dojo-password-type
而不是pwType
中指定值,如下所示:
<div id="sample">
<input type="password" data-dojo-password-type="new" />
<input type="password" data-dojo-password-type="verify" />
</div>
答案 1 :(得分:0)
如下:
var theDiv = dojo.create("div", {id: "sample"}),
theNewPass = dojo.create("input", {type: "password", pwType: "new"}, theDiv, "last"),
theVerifPass = dojo.create("input", {type: "password", pwType: "verify"}, theDiv, "last"),
a = new dojox.form.PasswordValidation({}, "sample")
;