2011-02-13 76 views
0
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没有设置到它。我可以看到帐号为“其他”。而不是我在文本框中输入的值。为什么?我该如何设置?

回答

3

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

UPDATE

你需要做的是将文字作为隐藏字段,这样的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> 
+0

让我怎么做呢?我应该在脚本中使用 RMa 2011-02-13 03:06:12