2013-12-11 53 views
1

我驗證表單域,當所有的表單字段填寫正確我想啓用提交按鈕。我的驗證工作正常,但沒有將變量設置爲true並檢查該變量。例如..jQuery的變量設置爲true,並得到,如果無功是真的

if(password != confirm_password) { 
$("#password_mismatch").css("display", "inline"); 
} else { 
$("#password_mismatch").css("display", "none"); 
var password_match_valid = true; 
return false; 
} 

此功能檢查,一切都驗證並啓用按鈕

function validate(){ 
if ($('#name').val().length > 0 && 
    password_match_valid == true) { 
    $('#signup_btn').prop("disabled", false); 
} 
else { 
    $('#signup_btn').prop("disabled", true); 
} 
} 

是導致問題的位

var password_match_valid = true; 

password_match_valid == true 
+0

錯誤是什麼? – Raptor

+2

看起來像變量'password_match_valid'在本地範圍內... –

回答

4

這設置了一個局部變量:

var password_match_valid = true; 

這個變量不會從其中它聲明的函數外可見,尤其是它不是從validate功能可見。

一種解決方案是使全球性的,通過在全球範圍內增加

var password_match_valid; 

和刪除您目前擁有的var關鍵字。

但不清楚爲什麼測試不直接在validate函數中完成,所以根據代碼的其餘部分,可能會有更清晰的解決方案。

1

你的變量password_match_valid必須是全球性的。爲此在任何函數之外聲明它。

0
var password_match_valid = true; 

此var只存在於您的else語句中。進入validate()功能,你不能在password_match_valid知名度。嘗試使用全局變量。

相關問題