2 wanke19891102 wanke19891102 于 2013.08.29 11:38 提问

js获取多选框的value值时,老获取不到第一个框的value值,显示为空值。其他的都能获取

jsp页面中的代码:

承运人:
input type="checkbox" name="carrier" id="carrier" value="HU" />
input type="checkbox" name="carrier" id="carrier" value="JD" />
input type="checkbox" name="carrier" id="carrier" value="GS" />
input type="checkbox" name="carrier" id="carrier" value="GN" />
input type="checkbox" name="carrier" id="carrier" value="8L" />

js代码:
//取出后台传递过来的承运人值,然后填充到前台页面
var c=data.dtospecialPeriod.carrier;//这是从数据库取出的数据,格式为HU/GS/8L
var s = [];
s = c.split("/");
var obj = document.getElementsByName("carrier");
for(var x=0; x<s.length; x++){
for(var i=0;i<obj.length;i++ ){
if(obj[i].value==s[x])
{
obj[i].checked=true;
break;
}
}
}

实现的功能是:从数据库取出承运人数据格式上面所示,然后显示到多选框中被选。问题:老取不到多选框carrier的第一个值(value=“HU”),其他值都能正常取到。这样就无法判断从后台传递来HU时,value=“HU”的框无法显示被选。怎么解决?谢谢

2个回答

wanke19891102
wanke19891102   2013.09.05 18:22
已采纳

我已经解决了 就是把多选框中的id属性去掉,原因可能是id属性名字不能重复。所以只留name属性就好!
input type="checkbox" name="carrier" value="HU" />
input type="checkbox" name="carrier" value="JD" />
input type="checkbox" name="carrier" value="GS" />
input type="checkbox" name="carrier" value="GN" />
input type="checkbox" name="carrier" value="8L" />

把id=“carrier”去掉就行

yjtgod
yjtgod   2013.08.29 21:23

LZ,我用你这个代码做成HTML,是可以实现的。能够取到多选框carrier的第一个值。

wanke19891102
wanke19891102 我已经解决了 就是把多选框中的id属性去掉,原因可能是id属性名字不能重复。所以只留name属性就好!
大约 4 年之前 回复
yjtgod
yjtgod QQ聊吧:343993135.
大约 4 年之前 回复
wanke19891102
wanke19891102 不是,我第一进去取多选框的值的时候可以取到第一个多选框value=“HU”的值 第二次再点击时(只要页面不刷新,刷新的话可以取到)就取不到多选框value=“HU”的值
大约 4 年之前 回复
yjtgod
yjtgod 你试试,把var c = "HU/GS/8L";//这是从数据库取出的数据,格式为HU/GS/8L。这里写死,试试看。不从数据库去取。或者你数据库取出来的值本身有问题呢,导致不能选中第一个。
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片