gpt4 book ai didi

java - 从jsp获取禁用的真实数据到struts2 Action 类

转载 作者:行者123 更新时间:2023-11-29 03:52:34 25 4
gpt4 key购买 nike

我的 jsp 中有 disabled=true 文本框和组合框。

当我尝试将这些值(value)映射回行动时,它们消失了。

我不想再调用 DB。

如何将那些 disabled=true textboxescombo boxes 的数据值设置为隐藏值

提前致谢。

最佳答案

不与表单一起提交的禁用元素值的属性不是 struts2 的问题,而是 HTML 行为。要处理此行为,请使用以下实现:

  1. 使用 readonly="readonly"属性来防止修改而不是使用 disabled。 (这对少数元素不可用)
  2. 使用 onfocus="return false"来防止对 html 元素的任何关注。这将防止修改它们的值。您可以使用 CSS 使这些元素看起来像只读的或禁用的。
  3. 在禁用元素之前,创建一个隐藏元素并附加要禁用的元素的值。这将确保提交项目。

请参阅以下选择元素的实现。您可以使用 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 元素生成相应的默认值。

关于java - 从jsp获取禁用的真实数据到struts2 Action 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8048439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com