checkbox不选中传值

本文介绍了如何在JavaScript中处理checkbox未选中时不传递值的问题,通过实例代码展示了具体实现方法,帮助开发者解决前端表单数据处理中的常见困扰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复制代码

方法一

<form action="test2.asp" method="post">

<input type="checkbox" name="chk1" value="1" />
<input type="checkbox" name="chk2" value="1" οnclick="javascript:document.getElementById('hid').value=this.checked;" />
<input type="hidden" id="hid" name="hid1" value="false"/>
<input type="submit" value="提交" />
</form>

复制代码

 方法二

复制代码

根据W3C的规则未选中的checkbox和禁用的控件不是有效控件,不会被POST。因此如果要未选中的checkbox表示值0的话,就不得不曲线完成了。
最近研究Zend Framework时候,发现其中的一个方法formCheckbox()。这个方法是生成checkbox表单的。但是它在生成checkbox的之前会生成一个hidden表单。这种做法很巧妙。
比如:
<input type="hidden" name="foo" value="0">
<input type="checkbox" name="foo" id="foo" value="1">
生成这样的表单,当checkbox未选中的时候,提交的是hidden表单。值0就被提交到服务器了。
当checkbox都选中的时候,hidden和checkbox表单都被提交了,但是因为它们的name是一样的,所以hidden的值被checkbox覆盖了。所以就得到了数值1。
这种方法简单巧妙,值得推广。

经测试,在PHP中,如果有多个name相同的表单,post到服务器,后台仅取最后一个表单的值。而在ASP.NET中,会把这个多个表单的值合并成逗号分割的值。因此,这种方法用在PHP下更合适。

复制代码

 

原文链接:https://www.cnblogs.com/hsd1727728211/p/6516129.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值