2 ash shang Ash_Shang 于 2016.09.26 09:13 提问

关于html单选radio传值的问题
 <td><input type="radio" name="s011" value="yes"/>yes</td>
 <td><input type="radio" name="s011" value="no"/>no</td>

假如选中yes,如何将no的值设为null也传入后台保存数据库。

7个回答

feng1790291543
feng1790291543   Ds   Rxr 2016.09.26 09:37

加一个事件方法处理,点击选择判断是否为no,后存值

Ash_Shang
Ash_Shang 谢谢,这样也是可取吧,但是由于选项多,要对每一个选项都要定义事件,这样就有点麻烦,代码也显得冗余了。
大约一年之前 回复
showbo
showbo   Ds   Rxr 2016.09.26 10:06

保存no没意思啊,你就一个字段输入,对应数据库2个字段你应该存在2个不同的输入对象

Ash_Shang
Ash_Shang 嗯嗯,谢谢,我先试试。
大约一年之前 回复
showbo
showbo 回复Ash_Shang: 你这个用一个checkbox就行了,然后服务器端判断下这个是否有值,有对应yes什么的,没有no。如<input type="checkbox" value="yes" name="yesno"/>,服务器端yesno=request("yesno");yes=yesno=="yes"?"yes":null;no=yesno=="yes"?null:"no";大概这个样子。否则就需要前台js控制下2个隐藏hidden域对应你的yes/no2个字段了
大约一年之前 回复
Ash_Shang
Ash_Shang 嗯,数据库设计的就是两个字段,yes和no,选择那一项的就存对应的value没选的就存null。有24个单选项,所以如果每个name设计一个事件触发,冗余代码太多,就在想用其他方法来实现。
大约一年之前 回复
qq_23898511
qq_23898511   2016.09.26 10:10

yes
no

//保存将no的值设为null后的值
var Value="";
//使用each遍历,如果yes被选中则把no的值设为null
$(":radio[name='s011']").each(function(){
if(this.checked==true)
{
if(this.value="yes")
{
$(".no").text("null");
}
}
});
//取到no的值保存
Value= $(".no").text();

//最后判断一下
if(Value=="null")

Ash_Shang
Ash_Shang 谢谢,你这个方法蛮好的。如果不只有一个name呢?是不是获得整个页面的name,遍历呢?
大约一年之前 回复
qq_29594393
qq_29594393   Ds   Rxr 2016.09.26 09:28

只要这样子,还不如直接设置多选得了 ,多选加一个限制只能选一个就好.

Ash_Shang
Ash_Shang 更重要的是存值。
大约一年之前 回复
xiaoai1007
xiaoai1007   2016.09.26 09:28

no ,如果是用的Struts2的话,用name属性注入传值。你试试看行不行
Ash_Shang
Ash_Shang 谢谢!
大约一年之前 回复
Ash_Shang
Ash_Shang no struts,just servlet and jdbc
大约一年之前 回复
qq_23898511
qq_23898511   2016.09.26 10:10

"

yes"

" no"

变一下

qq_23898511
qq_23898511   2016.09.26 10:11
 <td><input type="radio" name="s011" value="yes"/><lable class="yes">yes</lable></td>
 <td><input type="radio" name="s011" value="no"/><lable class="no">no</lable></td>






Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!