所以,我做的第一件事是将checkbox
的所有实例换成' radio
'仍然没有得到我的效果..我想保持'勾选标记'和jQuery脚本允许的盒子等的自定义背景,一切都很完美,我只需要确保只能检查/选择一个项目..
排名第一,jQuery ..
/*! custom-checkbox - v1.0.1 */
(function ($) {
$.fn.customCheckbox = function() {
return this.each( function(i,v) {
//Ensure that a checkbox element was passed
if ( !$(v).is(':checkbox') ) {
return false;
}
//Add classes
$(v).addClass("custom-checkbox");
//If not wrapped within label tags, wrap it
var parentLabel = $(v).parent("label");
var withinLabel = parentLabel.length;
if ( !withinLabel ){
$(v).wrap("<label class='custom-checkbox-label'></label>");
}
else {
parentLabel.addClass('custom-checkbox-label');
}
//Create dummy checkbox
var dummy = $("<span class='custom-checkbox-display'></span>");
$(v).after(dummy);
if ( $(v).prop("checked") ) {
$(v).next('.custom-checkbox-display').addClass("checked");
}
//Add/remove classes to checkbox whenever state changes
$(v).change( function(e) {
var checkbox = $(e.currentTarget);
var state = checkbox.prop("checked");
if ( state ) {
dummy.addClass("checked");
}
else {
dummy.removeClass("checked");
}
});
//Make reset button aware of the custom checkboxes
var form = $(v).parents("form");
var reset = form.find("input[type='reset']");
reset.each( function(ri,rv) {
if ( !$(rv).hasClass("custom-checkbox-aware") ) {
$(rv).addClass("custom-checkbox-aware");
$(rv).click( function() {
form.find(".custom-checkbox:checked").trigger("click");
});
}
});
});
};
}(jQuery));
html表格加价......
<div class="form-group_district">
<p class="label">District Name*</p><br>
<label class="labeldistrict">
<input type="checkbox" name="NYCDistrictName" class="checkboxed" required >
I teach in the New York City Department of Education</label><br>
<label class="labeldistrict">
<input type="checkbox" name="ChiDistrictName" class="checkboxed" required >
I teach in the Chicago Public Schools</label><br>
<label class="labeldistrict">
<input type="checkbox" name="LADistrictName" class="checkboxed" required >
I teach in the Los Angeles Unified School District</label><br>
<label class="labeldistrict">
<input type="checkbox" name="othDistrictName" class="checkboxed" required >
Other</label><br>
<input type="text" name="othDistrictName" maxlength="100" class="otherdistrict" required ><br>
<br>
</div>
对于那里的小提琴手..这里是一个简单的骨头演示。想象一下“检查标记”&#39;图像显示在选择/焦点上。 (我真的不想保存它们并将它们托管在这个演示的某个地方)。
答案 0 :(得分:1)
您的单选按钮需要具有相同的组/名称才能选择一个。否则,他们将是个别按钮 - 作为一个旁边。输入字段应该在最后关闭,不需要在标签标签内。因为你可以使用=&#34;&#34;在一个单独的标签内。
<input type="radio" name="button" value="1"/>
<input type="radio" name="button" value="2"/>
&#13;
但是要使用复选框,您需要使用javascript / jquery来删除“已检查”状态。属性
$("document").ready(function(){
$('input[data-name="check"]').click(function(e){
var isChecked = $(this).is(":checked");
$('input[data-name="check"]').removeAttr("checked");
$(this).prop("checked", isChecked);
})
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="checkbox" data-name="check" value="1"/>
<input type="checkbox" data-name="check" value="2"/>
&#13;
答案 1 :(得分:1)
您可以重置除检查当前的所有其他元素,如:
//Add/remove classes to checkbox whenever state changes
$(v).change( function(e) {
$('input[type="checkbox"].custom-checkbox:checked').not(v).prop("checked", false);
$('.custom-checkbox-display.checked').not(dummy).removeClass("checked");
var checkbox = $(e.currentTarget);
var state = checkbox.prop("checked");
if ( state ) {
dummy.addClass("checked");
}
else {
dummy.removeClass("checked");
}
});