2016-04-12 23 views
0

Premium teslimatı öntanımlı olarak önceden seçmeye çalışıyorum. Web’e bakıyordum ve neden ikinci radyo kutusunu önceden seçmediğini anlamıyorum. Ayrıca my JSfiddleİstenilen radyo kutusunu varsayılan olarak önceden seçemiyorum

Kodum bağlantı olduğunu bulabilirsiniz:

jQuery(document).ready(function() { 
 
    waitForDelayedContent('#checkout-shipping-method-load .input-checkout-radio .method-title:contains(Take it to my room)', function() { 
 
    jQuery('#checkout-shipping-method-load .input-checkout-radio:not(.mtC) .method-title:contains(Take it to my room)').click(); 
 
    jQuery('#checkout-shipping-method-load .input-checkout-radio:not(.mtC):has(.method-title:contains(Take it to my room)) .radio').click(); 
 
    jQuery('#checkout-shipping-method-load .input-checkout-radio:has(.method-title:contains(Take it to my room))').addClass('mtC'); 
 

 

 
    }); 
 
});
<div id="checkout-shipping-method-load"> 
 
    <div class="sp-methods"> 
 
    <h3 class="title">Delivery Option</h3> 
 
    <p>You must select a delivery option.</p> 
 
    <ul> 
 
     <li class="delivery-method"> 
 
     <div class="input-checkout-radio"> 
 
      <input checked="checked" class="input-radio" id="s_method_standard" name="shipping_method" type="radio" value="paragon_customrate_standard"> 
 
      <label class="radio-label" for="s_method_standard"><span class="radio"></span> <span class="method-title">FREE Take it to 
 
        my door</span> 
 
      </label> 
 
     </div> 
 

 
     </li> 
 
     <li class="delivery-method"> 
 
     <div class="input-checkout-radio"> 
 
      <input class="input-radio" id="s_method_premium" name="shipping_method" type="radio" value="paragon_customrate_premium"> 
 
      <label class="radio-label" for="s_method_premium"><span class="radio"></span> <span class="method-title"><span class= 
 
        "price"><span class="currency">£</span>39</span>Take it to my room</span> 
 
      </label> 
 
     </div> 
 

 
     </li> 
 
    </ul> 
 
    </div> 
 
</div>

cevap

0

ilk radyo kutusu checked="check" sahip olması. Çalışması için bunu ikinci radyo kutusuna taşıyın. JavaScript'e gerek yok. Eğer gerçekten JavaScript ile yapmak gerekirse, http://jsfiddle.net/n5h65n73/

Veya: bu güncellenmiş keman bakın

$("#s_method_premium").prop("checked", true) 
+0

sorun bu Magento kodu ve ben = "kontrol" işaretli değiştiremezsiniz olmasıdır. Bu jQuery ile yapılabilir mi? – John

+0

Evet. '$ ("# S_method_premium") prop' –

+0

bununla hiçbir şans ya (gerçek "işaretli"). Bir hata ile geri geliyor: VM755: 2 Yakalanmamış TypeError: null – John

0

sorunu HTML'nizdeki içindedir. İlk radyo girişinde ayarlanmış checked="checked" özniteliğine sahipsiniz. Bu özelliği kaldırır ve ikincisine taşırsanız, istediğiniz gibi çalışır.

$('#s_method_premium').attr('checked', 'true');

temel açıklama Eğer jQuery attr yöntemi kullanılarak olmasıdır:

<div id="checkout-shipping-method-load"> 
 
    <div class="sp-methods"> 
 
     <h3 class="title">Delivery Option</h3> 
 
     <p>You must select a delivery option.</p> 
 
     <ul> 
 
      <li class="delivery-method"> 
 
       <div class="input-checkout-radio"> 
 
        <input class="input-radio" id="s_method_standard" name="shipping_method" type="radio" value="paragon_customrate_standard"> 
 
        <label class="radio-label" for="s_method_standard"><span class="radio"></span> <span class="method-title">FREE Take it to 
 
        my door</span> 
 
        </label> 
 
       </div> 
 
      </li> 
 
      <li class="delivery-method"> 
 
       <div class="input-checkout-radio"> 
 
        <input checked class="input-radio" id="s_method_premium" name="shipping_method" type="radio" value="paragon_customrate_premium"> 
 
        <label class="radio-label" for="s_method_premium"><span class="radio"></span> <span class="method-title"><span class= 
 
        "price"><span class="currency">£</span>39</span>Take it to my room</span> 
 
        </label> 
 
       </div>
bu kullanarak jQuery yapmak için, burada kod snippet'ine özelliği değiştirmek (yani, ilk argüman) wi istenen değer (yani, ikinci argüman). Ve sonra, her iki kod satırı için gereklilik, ikincisini ayarlamadan önce ilk kontrolün kaldırılmasıdır.

Bu yardımcı olur mu?

+0

jQuery kullanarak "kontrol" hareket ettirmek mümkün kod? – John

+0

Evet. Cevabı jQuery yöntemi – BenCodeZen

+0

ile güncelleyeceğim. Kodu, mobil aygıtlarda varsayılan olarak tetikleyecek şekilde yapıştırırsam? – John