使用Ruby on Rails的自定义复选框

时间:2013-11-22 16:57:27

标签: jquery ruby-on-rails firefox checkbox

我正在尝试添加也可以在firefox中运行的自定义复选框,但我遇到了ruby-code的问题。我想要的是这样的东西:

    <%= f.check_box :privacy_statement_accepted, id:"agb" %>
    <%= f.label :privacy_statement_accepted, "<span></span>".html_safe %>

但是,此代码禁用复选框并返回true,但如果我将其更改为:

    <%= f.check_box :privacy_statement_accepted, {:checked=>false}, id:"agb" %>
    <%= f.label :privacy_statement_accepted, "<span></span>".html_safe %>

选中此框时,它不会更新值。是否有使用f.check_box但不使用check_boxe_tag的解决方案?

这就是我正在使用atm的原因,因为它有效,但效果并不好:

<input type="checkbox" id="agb" name="privacy_statement_accepted" />
<label for="agb"><span></span></label>

CSS:

input[type="checkbox"] {
    display: none;
}

input[type="checkbox"] + label {
    font-size:14px;
}

input[type="checkbox"] + label span {
    display:inline-block;
    width:19px;
    height:19px;
    margin: -1px 4px 0 0;
    vertical-align:middle;
    background:url(icons/checkbox.png) left top no-repeat;
    cursor:pointer;
}

input[type="checkbox"]:hover + label span {
    background:url(icons/checkbox.png) left bottom -20px no-repeat;
}

input[type="checkbox"]:checked + label span {
    background:url(icons/checkbox.png) left top -46px no-repeat;
}

JavaScript:

function validateAgb() {
if ($('#agb').is(':checked')) {
    $('#agbMsg').hide();
    return true;
} else {
    $('#abg').focus();
    $('#agbMsg').show();
    return false;
}
}

谢谢!

0 个答案:

没有答案