Jquery 输入属性';选中';默认情况下

Jquery 输入属性';选中';默认情况下,jquery,html,Jquery,Html,我正在开发一个模式,它有一个复选框来启用支付网关。单击复选框时,details div会滑出,并且设置为如果设置了值,则默认情况下会展开details div,但是在展开details div时,我无法在默认情况下选中复选框。在这种情况下,jquery中的.attr('clicked')方法似乎有点挑剔 以下是我的jquery: $("#setting-public-print").live("click", function (e) { if ($("#setting-public-prin

我正在开发一个模式,它有一个复选框来启用支付网关。单击复选框时,details div会滑出,并且设置为如果设置了值,则默认情况下会展开details div,但是在展开details 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;
}
$(“#设置公共打印”).live(“单击”,功能(e){
if($(“#设置公共打印”).attr('checked'))
{
$('.public print settings div').fadeIn('fast');
$('pay to print').fadeIn('fast');
}
其他的
{
$('.public print settings div')。淡出('fast');
$('pay to print')。淡出('fast');
}
var paymentGateway=isNumberKey();
如果($(paymentGateway).length>0){
$(“#设置公共打印”).attr('checked','checked');
}
否则{
$(“#设置公共打印”).removeAttr('checked');
}
});
});
函数isNumberKey(evt)
{
var charCode=(evt.which)?evt.which:event.keyCode;
如果(charCode!=46&&charCode>31
&&(字符编码<48 | |字符编码>57))
返回false;
返回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>
启用支付网关

0%> 选择货币: 每页价格:


有人能解释一下这个复选框的问题吗?

如果我没弄错的话,这就是复选框:

<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
       ^^^^^^^
启用支付网关
^^^^^^^

您想使用
.prop()


只是一个指针,但它是
prop('checked')
来检查
checked
状态。谢谢@DavidThomas,这对我来说是一个明显的语法错误,不幸的是,问题仍然存在:/感谢您的更正however@MattBusche布尔属性只有在您编写XHTML时才需要一个值。如果没有
checked=“checked”
的完整语法,IE7上的jQuery将无法正常运行,除非它们在过去一个月内已经解决了这个问题,或者之前已经解决了这个问题,无法找到原因,但将“已选中”直接添加到输入中不起作用string@MattBusche,我尝试了两种版本,但都没有成功。这很奇怪,即使删除javascript并仅在html中显示带有checked=“checked”属性的复选框,默认情况下该复选框仍不会被选中。我找不到任何额外的拦截器,我现在正试图显示简单的html,非常奇怪
if ($("#setting-public-print").prop('checked'))