2

我有这个由重力表单中的预填充表单生成的 html:

<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);
    }
});

有谁知道为什么它不起作用?

4

3 回答 3

2

尝试这个 :

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

演示。

于 2013-10-04T19:21:16.067 回答
1

你可以试试这个

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

演示。

更新 :

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

演示。

于 2013-10-04T19:20:02.910 回答
0

试一试...

$( document ).ready( function(){
    $('img').each(function(index){
        if($(this).hasClass('outofstock')){
            var getIde = $(this).attr('id');
            $('#'+getIde).attr('disabled', 'disabled').prop('checked', false);
        }
    });
});
于 2013-10-04T19:16:57.150 回答