2012-08-11 98 views
0

試圖學習JavaScript,我猜想makin體面的進步,但我堅持在驗證表單,試圖看看是否有人有同樣的問題,搜索沒有變成什麼。那麼你能幫我嗎?試圖驗證表格

var minlength = 6; 
var pwlength = document.getElementById('psswrd'); 
var invalid = " "; 

function validate() { 

    if (pwlength.length < minlength && pwlength == invalid) { 
     alert("Password not valid"); 

    else { 
     alert("Password okay!"); 
    } 
} 

submitbtn.onClick = validate(); 
+0

它應該是'無功pwlength =的document.getElementById( 'psswrd')值;' – Uttara 2012-08-11 06:45:27

+0

更好'VAR pwlength =的document.getElementById( 'psswrd')value.length' – mplungjan 2012-08-11 07:06:44

回答

1
  • ,你把這個它並不明顯。任 document.forms[0].submitbtn document.getElementById("submitbtn")document.getElementsByName("submitbtn")[0]將取決於你如何命名或ID按鈕不過,不要分配onclick處理提交按鈕,而不是分配提交處理的形式
  • 沒有一個單一的空間點的測試工作因爲無論如何,這少於6個字符。
  • & &是AND,你的意思是|| OR
  • onclick必須全部小寫。
  • 您指定的onclick來驗證,而不是驗證
  • 的結果,你不停止提交

我已經採取了微調,從here ,我以爲形式具有ID =「form1的」

window.onload=function() 
    document.getElementById("form1").onsubmit = validate; 
} 

if(typeof String.prototype.trim !== 'function') { // let's help older IEs 
    String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g, ''); 
    } 
} 

function validate() { 
    var minlength = 6; 
    var pw = document.getElementById('psswrd'); 
    if (pw.value.length < minlength || pw.value.trim() == "") { 
    alert("Password not valid"); 
    pw.focus(); 
    return false; 
    } 
    return true; // allow submission 
} 
+0

您的變量'pwlength'應該始終爲'0'。相反,「pwval」的聲明應該在「pwlength」之前,「pwlength」的值應該等於「pwval.length」。當然,用這麼短的生命週期,你是否真的需要爲這些事情定義變量? – jeremy 2012-08-11 06:58:18

+0

謝謝修復... – mplungjan 2012-08-11 06:59:47

+0

非常感謝!它的工作原理應該如此。 – Lucenzo 2012-08-11 07:27:54

0
var minlength = 6; 

var pwlength = document.getElementById('psswrd'); 

var invalid = " "; 

function validate() { 

    if (pwlength.length < minlength && pwlength == invalid) { 
     alert("Password not valid"); 
} 

    else { 
     alert("Password okay!"); 
    } 
} 
+0

此代碼將無法正常工作 - 。你沒有訪問val ue字段 – mplungjan 2012-08-11 07:11:06

0

您在這裏有幾個問題。

1)pwlength.length不會讓你走得很遠。 pwlength等於一個html對象,而不是一個html對象的值。實際變量更改爲以下內容,你應該得到正確的結果:

var pwlength = document.getElementById('psswrd').value; 

2)您if ... else聲明else部分之前,你需要用花括號關閉它結束if聲明(}) 。該部分更改爲以下:

} else { 

3)您的驗證檢查,看看如果長度== invalid爲奇數。仔細檢查並擺脫它。

4)你的onclick事件需要看起來像這樣:

submitbtn.onclick = function(){ validate() }; 

注意:小寫事件關鍵字和function() { ... };各地要運行的功能包。我有一個在window.onload

  • 你不正確地訪問按鈕,包裹它 -

  • +0

    實際上查看var名稱,我會建議'var pwlength = document.getElementById('psswrd')。value.length' – mplungjan 2012-08-11 07:07:46