0

更新。

在我的购物车页面上有一个更新按钮,我想检查购物车中的所有项目,看看它们是否超过 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

4 回答 4

0

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

$('#.table.ShopTable tbody tr td input')
    .each(function(idx, el) {
              if (el.val() == '1' || el.val() == '0') {
                 el.addClass("errorform");
                 ...
              }
          });
于 2012-09-07T10:04:29.197 回答
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();
    }
}
于 2012-09-07T10:05:00.943 回答
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() {

    ...

});

它工作。

于 2012-09-07T10:08:33.647 回答
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;
    }
});
于 2012-09-07T10:08:49.220 回答