0
我想通過構造函數傳遞表單節點來驗證表單。我知道使用面向對象是有點超過頂部,但它的要求。我已經得到了下面的代碼,但是當我嘗試提醒函數(表單)中的文本框的值時,它們會以未定義的形式出現。我確信我犯了一個明顯的錯誤,但誰能幫助我?由於通過傳遞表單名稱作爲構造函數來驗證表單
<SCRIPT LANGUAGE="JavaScript">
function Validator(fields) {
this.fields = fields;
}
Validator.prototype.validate = function (form) {
for (var i = 0, l = this.fields.length; i < l; i++) {
alert(this.fields[i].value);
if (this.fields[i].value == 0) {
alert("The field is empty");
return false;
}
}
}
var validator = new Validator(["username", "password"]);
function runValidate(form) {
validator.validate(form);
}
</SCRIPT>
</head>
<body>
<form NAME="AbbeyRoad">
<fieldset>
<legend>Please login</legend>
<div class="form-element">
<label for="username"><span class="shortkey">U</span>sername:</label>
<input type="text" name="username" id="username" accesskey="u">
</div>
<div class="form-element">
<label for="password"><span class="shortkey">P</span>assword:</label>
<input type="password" name="password" id="password" accesskey="p">
</div>
<input type="button" name="login" value="Login" id="login" onClick="runValidate(this.form)">
</fieldset>
</form>
謝謝!!!!!這工作。順便說一句,看代碼,我應該改進嗎?顯然,如果沒有面向對象的情況下更好地做到這一點,但我想知道是否需要在這裏使用原型? – 2013-02-26 12:06:42
您的代碼編寫得很好,在這裏使用原型沒有任何傷害。我要說的是要記住,函數本身就是對象,任何類型的對象在實例化性能方面都特別昂貴,但對於較小的應用程序來說,清晰度可能更有用。 – Jodes 2013-02-26 22:27:24
很酷 - 謝謝 – 2013-02-27 10:02:30