我有多个输入的订单(只有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;
}
答案 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;
}