2012-03-19 59 views
0

我有一個帶有文本輸入的表單,當檢查表單提交時是否有任何跳過的文本輸入,並且有一條提示說線路被跳過,並且他們需要填寫表單才能提交表單。檢查表單是否在提交表單時跳過了文本輸入字段?

這是我正在使用的代碼,並且如果最後一行爲空,我會得到nextEmptyLine未定義的錯誤。

我收到LIN是一種文本輸入

var emptyLine = eval('document.forms.mainForm.itemLine_1_' + lin).value; 
var nextEmptyLine = eval('document.forms.mainForm.itemLine_1_' + [lin+1]).value;  

if((emptyLine == "") && (nextEmptyLine != ""){ 
    alert("You seem to have skipped a line. Please go back and close up the lines. We do not allow for skipped lines."); 
    submitOnce=false; 
    return false; 
} 
+0

如果您可以使用框架我會推薦使用jQuery和jQuery驗證插件。那麼你就可以免費獲得這個功能。 – 2012-03-19 21:52:36

+0

哇,加載一個100KB,4,000行腳本加插件加上寫驗證代碼來替換10行函數。 – RobG 2012-03-20 02:35:35

回答

0
> var emptyLine = eval('document.forms.mainForm.itemLine_1_' + lin).value; 

哇,真正的黑暗時代的代碼,你從哪兒挖,高達行數?明智的使用評估是少之又少。作爲一般規則,不要使用它。

要檢查是否每一個textarea元素具有比空字符串或所有空白以外的值,使用表單上提交監聽器:

<form onsubmit="return checkTextareas(this);" ...> 
    ... 
</form> 

然後函數是:

function checkTextareas(form) { 
    var tas = form.getElementsByTagName('textarea'); 
    var re = /^\s*$/; 

    for (var i=0, iLen=tas.length; i<iLen; i++) { 
    if (re.test(tas[i].value)) { 
     // textarea has only whitespace or nothing in its value 
     // Tell the user why submit failed 
     alert('Ooops! You missed a line'); 
     return false; 
    } 
    } 
}