Проверьте, было ли пропущено поле ввода текста при отправке формы? - PullRequest
0 голосов
/ 20 марта 2012

У меня есть форма с текстовыми вводами, и я проверяю, есть ли пропущенные текстовые вводы при отправке формы, и у меня есть предупреждение о том, что строки были пропущены, и им нужно заполнить их, прежде чем они смогут заполнить форму.передан.

Это код, который я использую, и я получаю сообщение об ошибке, что nextEmptyLine не определено, если последняя строка пуста.

Я получаю Лин - это количество строк для этого ввода текста

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 голосов
/ 20 марта 2012
>  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;
    } 
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...