Javascript表单验证-多个大于0的表单字段 函数negativeValues(){ var myTextField=document.getElementById('digit'); 如果(myTextField.value

Javascript表单验证-多个大于0的表单字段 函数negativeValues(){ var myTextField=document.getElementById('digit'); 如果(myTextField.value,javascript,validation,Javascript,Validation,上面是一段Javascript代码,每当字段id“digit”的值小于0时,submit或submit按钮中的onclick都会出现一个警报框 表单中大约有50个字段应被视为“数字”字段,其中不应小于0。我应该使用此Javascript更改什么以确保所有类似“数字”的字段都会弹出此警报框 我不能使用jquery/mootools进行验证——它必须是平面Javascript 谢谢。var form=document.forms[0];//文件中的第一个表格 function negativeVal

上面是一段Javascript代码,每当字段id“digit”的值小于0时,submit或submit按钮中的onclick都会出现一个警报框

表单中大约有50个字段应被视为“数字”字段,其中不应小于0。我应该使用此Javascript更改什么以确保所有类似“数字”的字段都会弹出此警报框

我不能使用jquery/mootools进行验证——它必须是平面Javascript

谢谢。

var form=document.forms[0];//文件中的第一个表格
function negativeValues(){
    var myTextField = document.getElementById('digit');

    if(myTextField.value < 0)
{
  alert("Unable to submit as one field has a negative value");
  return false;
  }
}
form.onsubmit=函数(){ 对于(var i=0;i不提供ID=“digit”,ID需要是唯一的。而是提供一个=“digit”或name=“digit[]”,在PHP中,它将在服务器上提供一个数组

下面是使用表单访问进行的典型验证

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
    }
}
如果可以从其他地方操纵类名

您可以使用ID=“digit1”ID=“digit2”和


这是最好的选择。我遇到的一个问题是,这些表单中的一些表单已经激活了LiveValidation-因此有时代码会更改类,而脚本不起作用。我应该在这里做什么?它是替换类还是添加到类中?如果添加,请使用
el[I].className.indexOf('digit')!=-1
。否则使用ID=“digit1”ID=“digit2”和代码:
el[i].ID.indexOf('digit')==0
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)">
if (el[i].className.indexOf('digit')!=-1 
if (el[i].id.indexOf('digit')==0