2010-01-06 69 views
-1

腳本不能正常工作: 請查找原因n補救措施?使用javascript處理文本區域時出現問題

function validate() { 
     if(document.complain.complain.value == '' || document.complain.complain_subject.value == ''){ 
      alert("Hey! you can't left a field blank!"); 
      return false; 
     } 
else if(document.complain.complain.length >100) { 

      alert("Sorry!post the complain within 100 characters"); 
      return false; 
      } 

     else{ 
      return true; 
     } 

    } 

形式是:

<form name="complain" method="POST" action="complains.jsp" onsubmit="return validate();"> 
<table> 
    <tr> 
     <td><input type="text" name="complain_subject" 
      value="Complain Subject here" maxlength="30"></td> 
    </tr> 
    <tr> 
     <td><textarea rows="6" name="complain" cols="73" 
      value="Complain body here" maxlength="100"></textarea></td> 
    </tr> 
    <tr> 
     <td><input type="submit" value="complain" name="operation"><input 
      type="reset" value="Reset" name="B2"></td> 
    </tr> 
</table> 
</form> 
+2

描述「不工作」。 –

+0

當im調用validate()時,如果文本區域爲空,它將被調用n顯示alert.but如果我發佈的消息大於100個字符,則警報不會顯示 –

+0

s/complain/complaint/g - 抱怨是動詞。 – tvanfosson

回答

1

檢查

document.complain.complain.value.length 

document.getElementById ("complain").value.length 

此外,我不認爲這是一個maxlength屬性文字區域。

+0

亞maxlength屬性文本區域doesnt work.i只是寫它記住在數據庫中該字段的分配大小 –

+0

thanx很多,這真的幫助.thax很多 –

4

嘗試檢查的值的長度,而不是元件的長度。

0

這條線:

else if(document.complain.complain.length >100) { 

是錯誤的。

它應該閱讀:

else if(document.complain.complain.value.length >100) { 

此外,作爲一般原則,我會建議使用局部變量使代碼更易讀。另外,我建議用同樣的方法做同樣的事情,所以如果你必須比較最大長度,那麼也可以使用length屬性來檢查最小長度。最後,像這樣的函數可能很難遵循,因爲你有多個出口點。我會建議做類似的事情:

function validate() { 
    var form = document.complain, 
     complaintMinLength = 1, complaintMaxLength = 100 
     complaintSubjectMinLength = 1, 
     complaintLength = form.complain.value.length, 
     complaintSubjectLength = form.complain_subject.value.length, 
     valid, msg 
    ; 
    if (complaintLength < complaintMinLength || 
     complaintSubjectLength < complaintSubjectMinLength) { 
     valid = false; 
     msg = "Hey! you can't leave a field blank!"; 
    } else if (complaintLength > complaintMaxLength) { 
     valid = false; 
     msg = "Sorry! Your message exceeds the maxumum length of " + complaintMaxLength + " characters."; 
    } else { 
     valid = true; 
    } 
    if (!valid){ 
     alert(msg); 
    } 
    return valid; 
} 
相關問題