以编程方式使用dojox.form.PasswordValidation

以编程方式使用dojox.form.PasswordValidation,dojo,Dojo,我正在建立一个注册表,并计划使用dojox.form.PasswordValidation来验证输入的密码是否相同。有没有一种方法可以通过编程方式使用dojox.form.PasswordValidation?如果我这样做: <div id="sample"> <input type="password" pwType="new" /> <input type="password" pwType="verify" /> </div>

我正在建立一个注册表,并计划使用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放在哪里


另外,我正在使用Dojo 1.6,不幸的是,这个小部件看起来并不是最新的,Dojo试图将所有无效的html属性移动到有效的data-*属性中。当查看小部件的PASCREATE方法时,它的中间有这个代码:

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>

比如说:

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")
;