检查表单提交时是否跳过了文本输入字段?

时间:2012-03-19 21:31:47

标签: javascript text input

我有一个带有文本输入的表单,我正在检查是否在提交表单时是否有任何跳过的文本输入,并且有一个警告,表示已跳过这些行,并且他们需要在它们形成之前填写它们提交。

这是我正在使用的代码,如果最后一行为空,我收到一个错误,即未定义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;
}

1 个答案:

答案 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;
    } 
  }
}