检查输入值是否为空或0并继续提交

时间:2015-09-02 09:21:16

标签: jquery forms validation

我有多个输入的订单(只有4个用于测试目的),我想要实现的是当这些输入中的任何一个为0或空时你无法提交表格(基本上你必须在至少1项)。我有一些类似的东西(函数checkEmpty),我使用了一段时间以类似的形式,但由于我对jQuery很新,我有问题将它用于jQuery和当前的代码。

测试jsfiddle:http://jsfiddle.net/nitadesign/97tnrepg/19/

function checkEmpty(){
var inputs =  document.forms['packaging'].getElementsByTagName('input');
var noneZeroFound = false;
for(var i=0;i< inputs.length;i++){
  var input = inputs[i]; 
  if(input.value != '0'){
     noneZeroFound = true;
     break;
  }
}
if(!noneZeroFound ){
  alert('You have to order minimum 1 product.');
  return false;
}

return true;
}

2 个答案:

答案 0 :(得分:1)

选中此link

您有隐藏的输入文字,其形式最初设置为

<input type="hidden" class="pack" id="pack03-price" name="pack03-price" value="7.00">

您将在以下行中获得包含隐藏字段:

var inputs =  document.forms['packaging'].getElementsByTagName('input');

因此,请在表单提交上的这些字段上跳过检查 0 null 清空

我在这里修改了你的代码:

function checkEmpty(){
 var inputs = document.forms['packaging'].querySelectorAll('input[type=text]');
 var noneZeroFound = true;
 for(var i=0;i< inputs.length;i++){
  var input = inputs[i]; 
  if((input.value != 0) & $.isNumeric(input.value)){
     noneZeroFound = false;
     break;
   }
 }
 if(noneZeroFound ){
   alert('You have to order minimum 1 product.');
   return false;
  }
  return true;
} 

答案 1 :(得分:1)

可以使用jQuery修改上述函数:

function checkEmpty(){

   var noneZeroFound = true;

     $("form#packageForm :input[type=text]").each(function(){
     var input = $(this); 

        if(input.val().length > 0) {
            noneZeroFound = false;
            return true;
        }
    });

   if(noneZeroFound){
      alert('You have to order minimum 1 product.');
      return false;
   }

   return true;
}