Jquery 1.8.2单选按钮不支持prop('已检查',true)

时间:2014-01-05 05:32:47

标签: jquery

尝试动态设置单选按钮。

这是HTML

    <div class="field-block button-height" name="payment_types" id="payment-types">
        <label class="label"><b>Payment Methods</b></label>
        <div name="payment-type-cc" id="payment-type-cc">
            <input type="radio" name="paymentMethod" id="payment-method-cc" value="paypal" class="radio">
               <label for="payment-method-paypal">Pay with your Credit Card</label>
        </div>
        <div name="payment-type-skip" id="payment-type-skip">
            <input type="radio" name="paymentMethod" id="payment-method-skip" value="skip" class="radio">
                <label for="payment-method-skip">Skip payments for now. Register only.</label>
        </div>
</div>

这是我的jquery线......

alert($('input:radio[name=paymentMethod]#payment-method-cc').val());
$('input:radio[name=paymentMethod]#payment-method-cc').prop('checked',true);

警报返回“跳过”,所以我知道我有正确的对象。但道具没有设置单选按钮。

2 个答案:

答案 0 :(得分:2)

解决了这个问题。

我正在使用主题,主题添加了额外的UI元素。 我只是在道具调用之后添加了第二行,它运行得很好。 $( 'MyObj中')丙( '检查',真); $( 'MyObj中')父母( '跨度')addClass( '检查');

对于任何可能使用来自themeforest的 developr主题的人来说,重要的是要注意这一点。失败的prop('checked',true)实现的效果是复选框确实设置但显示的UI对象不显示已检查。

在代码检查完对象后右键单击该对象并检查UI元素(Firefox)。您将看到添加的所有其他标签。在我的情况下,标签上方有一个跨度,我可以看到检查复选框时检查的类值是否存在,当对象未检查时不存在。

因此,在我的代码中,在I $('obj')之后.prop('checked',true);然后我添加代码,$('myobj')。parents('span')。addClass('checked');从主题中实现显示复选框。

答案 1 :(得分:0)

<div class="field-block button-height" name="payment_types" id="payment-types">
    <label class="label"><b>Payment Methods</b></label>
    <div name="payment-type-cc" id="payment-type-cc">
        <input type="radio" name="paymentMethod" id="payment-method-cc" value="paypal" class="radio" />
           <label for="payment-method-paypal">Pay with your Credit Card</label>
    </div>
    <div name="payment-type-skip" id="payment-type-skip">
        <input type="radio" name="paymentMethod" id="payment-method-skip" value="skip" class="radio" />
            <label for="payment-method-skip">Skip payments for now. Register only.</label>
    </div>

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
//<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

//works with 1.8.2 and 1.10.1

<script>
$(function(){

$("#payment-method-cc").attr('checked', 'checked');

});
</script>