我的輸入框是沒有在form裡面,只是input,如下:
<div class="form-group">
<label class="sr-only" for="dialogLoginInputPassword">密碼</label>
<input v-model="user.pass | passValidator" type="password" name="password" class="form-control flat" placeholder="密碼">
</div>
<div class="form-group">
<label class="sr-only" for="dialogLoginInputComfirm">密碼</label>
<input v-model="user.confirm | confirmValidator" type="password" name="confirm"class="form-control flat" placeholder="密碼確認" onblur="equalcheck()">
</div>
而且JavaScript是在同一個頁面的下方,格式如下:
<javascript>
module.experts(){
data:function(){ ###},
filter:{###},
computed:{###},
methods:{###}
}
</javascript>
我的equalcheck()是
function equalcheck(){
if(password.value != confirm.value){
alert("once again");
return false;
}
}
請問我寫的equalcheck方法有錯誤嗎,就是判斷兩次輸入的密碼是否一致,
如果我寫的不對請問該如何修改,如果寫的對,請問該放在JavaScript的什麼地方?JavaScript裡面的那些data function、filter、computed,methods格式不能變。謝謝老師
equalcheck未定義應該是你equalcheck所在的script代碼塊有語法問題導致出錯而沒有注冊equalcheck函數。自己用浏覽器工具看什麼錯誤。
並且你的input元素只有name,沒有id,只有name這樣無法通過xxxx.value獲取對象,加上id,而且建議不要直接通過id引用對象,而是通過document.getElementById來獲取。而且id不要起和系統對象的一樣,要不到時出錯都不知道什麼問題,如confirm。。
將你的equalcheck函數單獨放一個script,防止其他代碼的影響
<div class="form-group">
<label class="sr-only" for="dialogLoginInputPassword">密碼</label>
<input v-model="user.pass | passValidator" type="password" id="password" name="password" class="form-control flat" placeholder="密碼">
</div>
<div class="form-group">
<label class="sr-only" for="dialogLoginInputComfirm">密碼</label>
<input v-model="user.confirm | confirmValidator" id="confirm" type="password" name="confirm"class="form-control flat" placeholder="密碼確認" onblur="equalcheck()">
</div>
<script>
function equalcheck() {
var p = document.getElementById('password'), c = document.getElementById('confirm');
if (p.value != c.value) {
alert("once again");
return false;
}
}
</script>