如何在jQuery中检查多个输入框?

时间:2012-09-07 09:57:58

标签: jquery html

更新

在我的购物车页面上有一个更新按钮,我想检查购物车中的所有商品,看看它们是否有超过1而不是0 - 所有输入框都如下所示:

Apple £4
<input type="text" size="3" value="1" name="quantity[50:YToyOntpOjIyNztzOjI6IjE3IjtpOjIyODtzOjI6IjIxIjt9]">

Orange £6
<input type="text" size="3" value="1" name="quantity[50:YToyOntpOjIyNztzOjI6IjE3IjtpOjIyODtzOjI6IjIewrew]">

我决定使用嵌套的.css类而不是名称,因为它始终是唯一的。

var errorQty=0;
$(document).ready(function () { 
    var errorQty=0;
    // this is an input box, more than one on the page
    var QtyItems = $('#ShopTable tbody tr td input');

    if(QtyItems=="0" || QtyItems=="1") {
        QtyItems.addClass("errorform");
        errorQty=1;
    } else {
        QtyItems.removeClass("errorform");
    }

    if (errorQty==1){
    } else {    
        $('#updateOrder').click(function () {       
            $('#updateOrderLoader').slideDown("fast");
            document.basket.submit();
            return false;
        });
    }
});

这是我的按钮。我希望代码仅在单击此按钮时才能正常工作!

<a href="#updateOrder" id="updateOrder" title="Update Cart"><img src="//cdn.com/cart/btnUpdate.png" alt="Update Cart" title="Update Cart"/></a>

4 个答案:

答案 0 :(得分:0)

您可以遍历输入元素列表:

$('#.table.ShopTable tbody tr td input')
    .each(function(idx, el) {
              if (el.val() == '1' || el.val() == '0') {
                 el.addClass("errorform");
                 ...
              }
          });

答案 1 :(得分:0)

按钮

<a onclick="goUpdate()" href="#updateOrder"><img src="//cdn.com/cart/btnUpdate.png"/></a>

的jQuery

var form_flag = 0;

function goUpdate() {

    var Items = $("#submitQty");

    if ($(Items).val() == "" || $(Items).val() == "1" || $(Items).val() == "0") {
        $(Items).addClass("errorform");
        form_flag = 1;
    } else {
        $(Items).removeClass("errorform");
    }
    // ALL INFORMATION GOOD ..
    if (form_flag == 1) {
        // NULL CANNOT SUBMIT
    } else {
        var cartForm;
        cartForm = document.getElementById("basket"); // enter the ID or Name or class of your form
        cartForm.submit();
    }
}

答案 2 :(得分:0)

您的代码中存在少量错误:

1)$('#.table.ShopTable tbody tr td input');应为$('table.ShopTable tbody tr td input');

2)此处if (errorQty=1){应为if (errorQty == 1){

3)控件为空,所以你可以这样做:

if (errorQty != 1){ // if errorQty is not 1.

然后将所有内容包装在按钮操作中:

$('#updateOrder').on('click', function() {

    ...

});

它有效。

答案 3 :(得分:0)

你可以试试这个

$('#updateOrder').on("click", function(e){
    e.preventDefault();
    var errorQty=0;
    var QtyItems = $('table.ShopTable tbody tr td input');
    $.each(QtyItems, function(){
        var _this = $(this);
        if(_this.val()=="0" || _this.val()=="1") {
            _this.addClass("errorform");
            errorQty=1;
         } else {
             _this.removeClass("errorform");
         }
    });
    if (errorQty==0){
         $('#updateOrderLoader').slideDown("fast");
         document.basket.submit();
         return false;
    }
});