如何使用Struts与JQuery将表格行值传递至单选按钮
解决Struts单选按钮通过jQuery赋值的问题
我懂你现在的困扰——文本框、日期选择器这些表单元素都能顺利从jqGrid获取数据赋值,唯独Struts的<s:radio>单选按钮搞不定,对吧?这是因为Struts的单选按钮标签和普通文本框不一样,它会渲染成多个独立的<input type="radio">元素:它们共享同一个name属性,但每个单选按钮都有自己的id(一般是你设置的id加上索引后缀,比如idMantGenero-0、idMantGenero-1),所以你之前用document.getElementById("idMantGenero").value的方式完全找不到正确的元素,自然没法赋值。
正确的赋值方法
你需要根据从jqGrid拿到的gen_pos值,找到对应value的单选按钮,然后设置它的checked属性为true。把你JavaScript代码里的单选按钮赋值部分替换成下面的代码:
原来的代码:
document.getElementById("idMantGenero").value = grid.jqGrid('getCell', sel_id, 'gen_pos');
替换为:
// 获取jqGrid里的性别值 var generoSeleccionado = grid.jqGrid('getCell', sel_id, 'gen_pos'); // 找到name为genero、值匹配的单选按钮,设置为选中状态 $('input[name="genero"][value="' + generoSeleccionado + '"]').prop('checked', true);
补充:更安全的写法(避免特殊字符问题)
如果你的性别值里可能包含引号这类特殊字符,用filter方法会更稳妥:
var generoSeleccionado = grid.jqGrid('getCell', sel_id, 'gen_pos'); $('input[name="genero"]').filter(function() { return $(this).val() === generoSeleccionado; }).prop('checked', true);
这样就能精准定位到对应的单选按钮并设置选中状态啦~
内容的提问来源于stack exchange,提问作者Dayana Ortiz
相关产品推荐
相关产品推荐

