JQuery giriş telsizi sadece bir kez çalışıyor

JQuery ile sorun yaşıyorum, 2 tane radyo girişi var, biri ödeme yöntemini seçmek için ve diğeri sevkiyat için. Teslimde ödeme seçtiysem ikinci telsizimi istiyorum, gönderi de almayı söylüyor. Bu, ikinci radyoyu değiştirene kadar iyi çalışır, bundan sonra işe yaramaz.

Dolayısıyla, gönderiyi değiştirdikten sonra, ödeme yöntemini değiştirirken gönderi otomatik olarak değişmeyecektir.

$("input:radio[name=paymentMethod]").change(function() {
        if($(this+':checked').val()=='pickUp'){
            $('input:radio[name=deliveryMethod]').filter('[value=pickUp]').attr('checked', true);
            $('input:radio[name=deliveryMethod]').filter('[value=UPS]').attr('checked', false);
        }
    });
1
İlgili html dosyasını gönderir misiniz?
katma yazar jackJoe, kaynak
HTML'niz isimleri kaçırıyor ve girdileri kapatıyor, muhtemelen yapıştırıldığı gibi. Sorunuzla ilgili olarak, ödeme sırasında UPS'i seçmediğiniz sürece teslim alma (teslimat) kontrol edilmesini ister misiniz? ve başka bir ödeme yöntemini seçerseniz (teslim sırasında teslim alma işlemini kontrol et) geri alın.
katma yazar jackJoe, kaynak
Bu (tablo yapısı olmadan) aşağıya gelir
  <input type = " radyo "id =" pm_paypal "değer =" paypal "name =" paymentMethod "> <input type =" radio "id =" pm_moneytransfer "value =" moneytransfer "name =" paymentMethod "> <input type =" radio "id = "pm_pickUp" değeri = "pickUp" name = "paymentMethod"> <input type = "radio" işaretli = "checked" değer = "UPS" name = "deliveryMethod"> UPS ile teslimat <input type = "radio" value = " pickUp "name =" deliveryMethod "checked =" checked "> Pick up  
katma yazar PvdL, kaynak
iade edilmek zorunda değilsiniz, paypal ile ödeme yaptıysanız siparişinizi alabilirsiniz, ancak siparişinizin gönderilmesini sağlamak istediğinizde, ödeme için ödeme yapamazsınız.
katma yazar PvdL, kaynak

2 cevap

Kullanıcı teslim alma yöntemini seçtiğinde UPS teslimatı seçimini "engellemek" istiyorsanız, UPS teslimat yöntemini devre dışı bırakmanızı (ve başka bir şey seçiliyse yeniden etkinleştirmenizi öneririz), bunun gibi:

$("input:radio[name=paymentMethod]").change(function() {
    if ($('input:radio[name=paymentMethod]:checked').val() == 'pickUp') {
        $('input:radio[name=deliveryMethod]').filter('[value=pickUp]').attr('checked', true);
        $('input:radio[name=deliveryMethod]').filter('[value=UPS]').attr('disabled', true);
    } else {
        $('input:radio[name=deliveryMethod]').filter('[value=UPS]').attr('disabled', false);
    }
});

Fiddle: http://jsfiddle.net/zvcbz/

1
katma

this is a jQuery object, not a string. You cannot add them together. At least use the code below:

$("input:radio[name=paymentMethod]").change(function() {
        if($('input:radio[name=paymentMethod]:checked').val()=='pickUp'){
            $('input:radio[name=deliveryMethod]').filter('[value=pickUp]').attr('checked', true);
            $('input:radio[name=deliveryMethod]').filter('[value=UPS]').attr('checked', false);
        }
    });
1
katma