其他选项 - 如何设置值?

时间:2011-02-13 02:28:38

标签: java jsp struts

1. Member Account Number<span class="bodyCopy"><font color="#ff0000"> * </font></span>: 
<html:select name="reDataForm" property="member.accountNumber" styleClass="formContent"
        style="width:80px" onchange="showfield(this.options[this.selectedIndex].value)">
<html:options collection="<%= WorkConstants.Dropdowns.PACCT %>" property="value"
            labelProperty="label" styleClass="formContent"/>
</html:select>

<div id="div1"></div>

功能如下:

<script type="text/javascript">
    function showfield(name){
        if(name=='Other')
            document.getElementById('div1').innerHTML='<html:text name="reDataForm" property="member.accountNumber" styleClass="formContent"  maxlength="9" size="9"/>';
        else
            document.getElementById('div1').innerHTML='';
    }
</script>

问题是:如果我选择“其他”选项,则会在设计的下方显示一个文字。但是值member.accountNumber没有设置到它中。我可以将帐号看作“其他”。不是我在文本框中输入的值。为什么?以及如何设置?

1 个答案:

答案 0 :(得分:3)

您对客户端和服务器端代码感到困惑。 Struts标记<html:text>在服务器端呈现。在您的情况下,您尝试将该自定义标记放在客户端(Javascript)。 Javascript基本上吐出HTML行,而您的浏览器无法解释<html:text>是什么,因为这是服务器端自定义标记。

<强>更新

您需要做的是将文本作为隐藏字段放置,以便Struts可以呈现自定义标记和bean值: -

<html:hidden styleId="accountNumber" name="reDataForm" property="member.accountNumber"/>

然后,在您的Javascript中,您希望从隐藏字段中获取值并将其设置为div1: -

<script type="text/javascript">
    function showfield(name){
        if(name=='Other')
            document.getElementById('div1').innerHTML= document.getElementById('accountNumber').value;
        else
            document.getElementById('div1').innerHTML='';
    }
</script>