我有一个带有文本输入的表单,我正在检查是否在提交表单时是否有任何跳过的文本输入,并且有一个警告,表示已跳过这些行,并且他们需要在它们形成之前填写它们提交。
这是我正在使用的代码,如果最后一行为空,我收到一个错误,即未定义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 :(得分:0)
> var emptyLine = eval('document.forms.mainForm.itemLine_1_' + lin).value;
哇,真正的黑暗年代码,你从哪里挖出来的? eval 的合理用途很少见。作为一般规则,永远不要使用它。
要检查每个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;
}
}
}