有没有办法让div上的click事件与表单环境中的单选按钮相同?我只想让下面的div提交值,单选按钮很难看
代码输出如下:
<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date">8</input></li><li id="li-2011-06-09" class=" "><input id="radio-2011-06-09" value="2011-06-09" type="radio" name="radio_date">9</input></li><li id="li-2011-06-10" class=" "><input id="radio-2011-06-10" value="2011-06-10" type="radio" name="radio_date">10</input></li><li id="li-2011-06-11" class=" end "><input id="radio-2011-06-11" value="2011-06-11" type="radio" name="radio_date">11</input></li><li id="li-2011-06-12" class=" start "><input id="radio-2011-06-12" value="2011-06-12" type="radio" name="radio_date">12</input></li><li id="li-2011-06-13" class=" "><input id="radio-2011-06-13" value="2011-06-13" type="radio" name="radio_date">13</input></li><li id="li-2011-06-14" class=" "><input id="radio-2011-06-14" value="2011-06-14" type="radio" name="radio_date">14</input></li><li id="li-2011-06-15" class=" "><input id="radio-2011-06-15" value="2011-06-15" type="radio" name="radio_date">15</input></li><li id="li-2011-06-16" class=" "><input id="radio-2011-06-16" value="2011-06-16" type="radio" name="radio_date">16</input></li><li id="li-2011-06-17" class=" "><input id="radio-2011-06-17" value="2011-06-17" type="radio" name="radio_date">17</input></li><li id="li-2011-06-18" class=" end "><input id="radio-2011-06-18" value="2011-06-18" type="radio" name="radio_date">18</input></li><li id="li-2011-06-19" class=" start "><input id="radio-2011-06-19" value="2011-06-19" type="radio" name="radio_date">19</input></li><li id="li-2011-06-20" class=" "><input id="radio-2011-06-20" value="2011-06-20" type="radio" name="radio_date">20</input></li><li id="li-2011-06-21" class=" "><input id="radio-2011-06-21" value="2011-06-21" type="radio" name="radio_date">21</input></li><li id="li-2011-06-22" class=" "><input id="radio-2011-06-22" value="2011-06-22" type="radio" name="radio_date">22</input></li><li id="li-2011-06-23" class=" "><input id="radio-2011-06-23" value="2011-06-23" type="radio" name="radio_date">23</input></li><li id="li-2011-06-24" class=" "><input id="radio-2011-06-24" value="2011-06-24" type="radio" name="radio_date">24</input></li><li id="li-2011-06-25" class=" end "><input id="radio-2011-06-25" value="2011-06-25" type="radio" name="radio_date">25</input></li><li id="li-2011-06-26" class=" start "><input id="radio-2011-06-26" value="2011-06-26" type="radio" name="radio_date">26</input></li><li id="li-2011-06-27" class=" "><input id="radio-2011-06-27" value="2011-06-27" type="radio" name="radio_date">27</input></li><li id="li-2011-06-28" class=" "><input id="radio-2011-06-28" value="2011-06-28" type="radio" name="radio_date">28</input></li><li id="li-2011-06-29" class=" "><input id="radio-2011-06-29" value="2011-06-29" type="radio" name="radio_date">29</input></li><li id="li-2011-06-30" class=" "><input id="radio-2011-06-30" value="2011-06-30" type="radio" name="radio_date">30</input></li><li id="li-" class=" inactive"></li><li id="li-" class=" end inactive"></li></ul><div class="clear"></div></div>
答案 0 :(得分:15)
这可以在没有Javascript的情况下完成,但你必须放弃div。
您可以使用<label>
代码而不是<div>
,并使用CSS隐藏单选按钮。
例如:
<input type="radio" id="foo" /><label for="foo">Bar</label>
在CSS中:
input[type=radio] {
display:none;
}
请注意,<label>
标记默认为内联,<div>
为块级元素,因此您可能需要稍微移动一下CSS。
答案 1 :(得分:7)
您可以隐藏单选按钮,如果单击div,则会在隐藏的单选按钮上触发单击事件。当然,您需要处理自己选择的日期。
我准备了一个小型演示: http://jsfiddle.net/roberkules/4xK86/
答案 2 :(得分:2)
只需关闭单选按钮可见性并将单击事件绑定到每个div / tds /无论将(现在不可见)单选按钮设置为“已检查”。您需要向用户提供某种可见的指示,即选择日期,并且您需要添加逻辑,以便在选中另一个时“取消选择”div / td / whatever。
答案 3 :(得分:1)
这些方面的内容如何:
$('div', '#calendar')
.find(':radio')
.attr('checked', 'checked')
.trigger('change');
其中'#calendar'是日历的ID值。这假设单选按钮位于相关div中。触发器('change')将调用已绑定到该单选按钮的任何事件。
您还可以使用标签并将日期编号标记为标签。可以使用FOR属性将标签链接到表单输入。输入需要匹配的ID属性。
答案 4 :(得分:1)
因为在您的情况下,您只能选择一个日期。我会做以下
selectedItem
。 希望有所帮助。
答案 5 :(得分:1)
基本上你将不得不添加一个隐藏字段来保存日期,但只要你能够点击div
被点击的日期,你就是金色的。您只需将值推送到onclick
处理程序上的隐藏字段。
<input type="hidden" name="date" id="date"/>
<!-- Begin Calendar -->
<!-- Begin Calendar Cell -->
<div class="calendarCell">
<span class="date">#</span>
</div>
<!-- End Calendar Cell -->
<!-- End Calendar -->
<script type="text/javascript">
$('.calendarCell').each(function(){
$(this).click(function(){
$('#date').val($(this).find('.date').html());
});
});
</script>