2011-12-22 36 views
0

在構建註冊表單並計劃使用dojox.form.PasswordValidation來驗證輸入的密碼是否相同時。有沒有辦法以編程方式使用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

不幸的是,它看起來像這個小部件並不是真正的最新版本,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> 
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") 
; 
相關問題