日期:2014-05-17  浏览次数:20592 次

jquery 相同的name值就拼接传到后台(紧急求助)
本帖最后由 li897893127 于 2013-10-12 10:45:51 编辑
页面

<tr>
<td class="td1">用餐状态2</td>
<td class="td3" colspan="3"><s:checkboxlist list="diningType" listKey="key" listValue="value" value="%{callTranslationVO.tdningstatus}" name="callTranslationVO.tdningstatus"></s:checkboxlist></td>
<td class="td3" colspan="3"><s:checkboxlist list="diningType" listKey="key" listValue="value" value="%{callTranslationVO.documentsnum}" name="callTranslationVO.documentsnum"></s:checkboxlist></td>
</tr>

例如上面的页面
我想通过jquery循环得到这2个checkbox数组(页面中不单单这2个checkbox数组!可以有很多个!但是name名字不同)
然后根据相同的name值来拼接选中的传递到后台
(前提是我不能直接在jquery指定$('input[name="aihao"]:checked').each(function()name的值等于aihao,而是想通过参数的形式来获取选中的值)我现在的疑问是不知道如何判断name的值是否相同!

------解决方案--------------------
那你看这种思路行不行的通:
创建两个数组:boxNames,boxValues,一个用来放checkbox的name,一个放value(拼接起来的),它们的下标一一对应。
通过jquery获取你form里所有的checkbox,然后依次循环,获得checkbox的name和value,然后将所有的name放到一个数组中(不重复的),比如:boxNames[name1,name2,name3...],也就是说,每拿到一个checkbox,就获取它的名字,然后到boxNames里去看,里面有没有这个名字了,判断结果:
1、没有,帮当前checkbox的名字放到boxNames中,把值放到boxValues中
2、有,看一下当前checkbox的名字在boxNames中的位置,比如name2的位置是1,则boxValues[1]就是name2所对应的值,拿出来,接上分号和当前checkbox的值后重新赋值,下标仍然是1不变。
这样你循环完所有的checkbox就能获取到所有的name和value了。
简单的说就是做一个类似map一样的东西,{name1:'value1_1;value1_2;value1_3',name2:'value2_1;value2_2;vaue2_3'......}