2013-10-04 87 views
2

我有這個網站重力形式由預填充表單生成:禁止輸入選項

<ul id="input_4_17" class="gfield_radio"> 
    <li class="gchoice_17_0"> 
     <input type="radio" tabindex="1" id="choice_17_0" name="input_17"> 
     <label for="choice_17_0"> 
      <img class="stock instock" id="gchoice_17_0"> 
     </label> 
    </li> 
    <li class="gchoice_17_1"> 
     <input type="radio" tabindex="1" id="choice_17_1" name="input_17"> 
     <label for="choice_17_1"> 
      <img class="stock outofstock" id="gchoice_17_1"> 
     </label> 
    </li> 
    <li class="gchoice_17_2"> 
     <input type="radio" tabindex="1" id="choice_17_2" name="input_17"> 
     <label for="choice_17_2"> 
      <img class="stock outofstock" id="gchoice_17_2"> 
     </label> 
    </li> 
</ul> 

我想根據庫存狀況禁用的投入,這是類的img元素。我不能把這個類的輸入,所以我用這個JavaScript基於類的圖像禁止輸入禁止輸入:

$(document).ready(function() { 
    if ($('img#gchoice_17_0').hasClass('outofstock')) { 
     $('input#choice_17_0').attr("disabled", "disabled").prop("checked", false); 
    } 
    if ($('img#gchoice_17_1').hasClass('outofstock')) { 
     $('#choice_17_1').attr("disabled", "disabled").prop("checked", false); 
    } 
    if ($('img#gchoice_17_1').hasClass('outofstock')) { 
     $('#choice_17_1').attr("disabled", "disabled").prop("checked", false); 
    } 
}); 

這工作,但我知道這是不是最好的方法去做這個。我正在嘗試這個代碼,但它不起作用。

$(document).ready(function() { 
    if ($('img').hasClass('outofstock')) { 
     var getIde = $(this).attr("id"); 
     $('input#' + getIde).attr("disabled", "disabled").prop("checked", false); 
    } 
}); 

有沒有人有任何想法,爲什麼它不工作?

+0

只有一個元素可以有一個給定的ID。您需要更改HTML和邏輯。 –

+0

當你說它不起作用時,你是什麼意思?你有沒有嘗試console.log你的'getIde'你有沒有正確的ID? –

+0

我已經把一個類的圖像ID – Nach

回答

0

給這個一杆...

$(document).ready(function(){ 
    $('img').each(function(index){ 
     if($(this).hasClass('outofstock')){ 
      var getIde = $(this).attr('id'); 
      $('#'+getIde).attr('disabled', 'disabled').prop('checked', false); 
     } 
    }); 
}); 
1

你可以試試這個

$('.outofstock').parent().prev('input:radio').prop('disabled', 1) 

DEMO.

更新:

$('.outofstock').parent().prev('input:radio').prop({ 
    'disabled':1, 
    'checked':0 
}); 

DEMO.

+1

你是我的英雄!非常感謝,現在它的工作,只有幾行javascript:D – Nach

+0

@Nach,謝謝親愛的,真的很高興知道,歡迎:-) –

2

試試這個:

$(document).ready(function(){ 
     $('.outofstock').parent().prev().prop('disabled',true).prop('checked',false); 
     }); 

DEMO.