我的jsp中有disabled=true
个文本框和combox框。
当我尝试将这些值映射回动作时,它们会消失。
我不想再次打电话给DB。
如何将disabled=true
textboxes
和combo boxes
的数据值设置为hidden values
?
非常感谢。
答案 0 :(得分:4)
与表单一起提交的禁用元素值的属性不是struts2的问题,而是HTML行为。要处理此行为,请使用以下实现:
请参阅以下针对select元素的实现。您可以使用s:select的id属性来设置select元素的html id。
<select id="demoSelect" class="readonly">
<option value="0">A</option>
<option value="1">B</option>
<option value="2" selected="selected">C</option>
<option value="3">D</option>
<option value="4">E</option>
<option value="5">F</option>
</select>
<input type="hidden" value="2" name="demoSelectDefault"/>
jQuery的:
$(document).ready(
function() {
$("select.readonly").live('change', function() { //live() makes sure that this is executed if you apply the class to the element even after the initial load. So, if you set the readonly class to a select element, you are done.
var selectElement = this;
$("input[type=hidden][name=" + this.id + "Default]").each( //This is implemented in case of multiple select support. You will need to select nothing at first and then make this select each of this element
function() {
selectElement.value = this.value;
}
);
});
}
);
这里,当你使用struts实现它时,填充s:select,然后使用s:hidden元素生成相应的默认值。