好的,不仅仅是复选框,还有单选按钮。问题在于我的表单上有许多复选框和单选按钮,看起来非常丑陋。
这不是一个功能问题,而是一个纯粹的UI问题。我正在寻找一些更酷炫的实现相同任务的方法。
哦,我正在使用jQuery 1.4.3
更新:我得到了jQuery插件。太棒了!谢谢大家... 附上我现在正在使用的截图。我喜欢这个,因为它看起来像iPhone风格,但并不是完全克隆。
好的,不仅仅是复选框,还有单选按钮。问题在于我的表单上有许多复选框和单选按钮,看起来非常丑陋。
这不是一个功能问题,而是一个纯粹的UI问题。我正在寻找一些更酷炫的实现相同任务的方法。
哦,我正在使用jQuery 1.4.3
更新:我得到了jQuery插件。太棒了!谢谢大家... 附上我现在正在使用的截图。我喜欢这个,因为它看起来像iPhone风格,但并不是完全克隆。
使用下拉菜单代替许多复选框/单选按钮不是更好吗?您可以启用多个选择以重现复选框行为。一般来说,如果在同一主题下有一个以上的复选框,我会这样做...
或者你是指它们关于不同的事情?在那种情况下,您能否发布一些您尝试从用户那里获取的信息的想法?
这是比更改编辑字段边框稍微高级一点的任务。最好的方法是隐藏复选框/单选按钮并用虚拟元素替换它。这种方法的问题在于保持两个元素同步。单选按钮图像需要知道另一个单选按钮何时被选中,等等。这需要一些高级事件ping-pong。对于复选框,您可以这样做(未经测试):
$(':checkbox').each(function () {
var checkbox = $(this),
fakebox = $(document.createElement('span')).addClass('custom-checkbox');
// toggle and trigger update of the real checkbox
fakebox.click(function () {
checkbox.attr('checked', !checkbox.attr('checked')).change();
});
// changes to the real checkbox causes the fake checkbox to update its status
checkbox.change(function () {
if (checkbox.attr('checked')) {
fakebox.addClass('custom-checkbox-checked');
} else {
fakebox.removeClass('custom-checkbox-checked');
}
});
// initialize
checkbox.change().hide();
fakebox.insertAfter(checkbox);
});
您可以始终使用CSS重新设计复选框/单选按钮(就像任何其他表单元素,如按钮)。