Проверка формы Javascript - несколько полей формы больше 0 - PullRequest
1 голос
/ 21 февраля 2011
function negativeValues(){
    var myTextField = document.getElementById('digit');

    if(myTextField.value < 0)
{
  alert("Unable to submit as one field has a negative value");
  return false;
  }
}

Выше приведен фрагмент кода Javascript, в котором каждый раз, когда идентификатор поля «цифра» имеет значение меньше 0, окно предупреждения появляется либо при отправке, либо при нажатии на кнопку отправки.

Есть около 50 полей в форме, которые следует считать «цифровыми» полями, где они не должны быть меньше 0. Что я должен изменить с этим Javascript, чтобы убедиться, что во всех «цифровых» подобных полях всплыло это окно с предупреждением?

Я не могу использовать jquery / mootools для проверки - это должен быть плоский Javascript.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2011

Не указывайте ID = "цифра", идентификаторы должны быть уникальными.Вместо этого укажите class = "digit" или name = "digit []", который в PHP даст вам массив на сервере.

Вот типичная проверка с использованием доступа к формам

function validate(theForm) {
  var el = theForm.elements;
  for (var i=0,n=el.length;i<n;i++) {
    if (el[i].className=="digit" && parseInt(el[i].value,10)<0) {
      alert('This field must contain a value > 0');
      el[i].focus();
      return false;
    }
  }
  return true; // allow submission
}

при условии

<form onsubmit="return validate(this)">

Альтернативы для className == будут

if (el[i].className.indexOf('digit')!=-1 

, если className можно будет манипулировать откуда-либо еще.

Выможно использовать ID = "digit1" ID = "digit2" и

if (el[i].id.indexOf('digit')==0
0 голосов
/ 21 февраля 2011
var form = document.forms[0]; // first form in the document
form.onsubmit = function () {
  for (var i=0; i<this.elements.length; i++)
    if (Number(this.elements[i].value) < 0) {
      alert("Unable to submit as one field has a negative value"); // complain
      return false;  // and prevent submission
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...