0

我正在开发一种模式,该模式具有启用支付网关的复选框。单击复选框时,详细信息 div 会滑出,并设置为如果设置了值,则默认情况下会展开详细信息 div,但是当展开详细信息 div 时,我无法默认选中复选框。在这种情况下,jquery 中的 .attr('clicked') 方法似乎有点挑剔。

这是我的jQuery:

$("#setting-public-print").live("click", function (e) {

if ($("#setting-public-print").attr('checked'))
{
    $('.public-print-settings-div').fadeIn('fast');
    $('.pay-to-print').fadeIn('fast');
}
else
{
    $('.public-print-settings-div').fadeOut('fast');
    $('.pay-to-print').fadeOut('fast');

}

var paymentGateway = isNumberKey();

if ($(paymentGateway).length > 0) {
    $("#setting-public-print").attr('checked', 'checked');
}
else {
    $("#setting-public-print").removeAttr('checked');
}

});
});

function isNumberKey(evt)
{
 var charCode = (evt.which) ? evt.which : event.keyCode;
 if (charCode != 46 && charCode > 31 
   && (charCode < 48 || charCode > 57))
    return false;

 return true;
}

和相应的html:

<p><input class="chkbox" type="checkbox" name="checkbox[]" id='setting-public-print'> Enable Payment Gateway</p>
    <div class='public-print-settings-div' style=''>
    <div class ='pay-to-print'>
            <%if !@currency_codes.nil?%>
                <%if @currency_codes.count > 0%>
                <div class="control-group utopia-chosen-label" style="width:220px !important;">
                    <h4 style='color:black;'>Select Currency:</h4>
                  <select data-placeholder="Choose a Currency..." class="chzn-select" tabindex="4" id='selected-currency'>
                          <option value=""></option> 
                                <%@currency_codes.each do |b|%>
                                <option value="<%=b%>"><%=b%></option>
                                <%end%>
                        </select>
                </div>
                <%end%>
            <%end%>
             <p><span id='email-customize-label'>Price per page:</span>
             <input id="selected-price" onkeypress="return isNumberKey(event)" type="text" name="selected-price" style='width:50px;'>
        </p>

任何人都可以对这个复选框问题有所了解吗?

4

2 回答 2

1

因此,如果我理解正确,这是复选框:

<input class="chkbox" type="checkbox" name="checkbox[]" id='setting-public-print'> Enable Payment Gateway

你希望它默认检查吗?

为什么不这样做呢?

<input checked class="chkbox" type="checkbox" name="checkbox[]" id='setting-public-print'> Enable Payment Gateway
       ^^^^^^^
于 2013-03-08T21:00:56.360 回答
1

你想用.prop()

if ($("#setting-public-print").prop('checked'))
于 2013-03-08T21:01:13.873 回答