2013-07-29 18 views
1

我有一個JSP頁面,並且我使用Struts2標籤來製作註冊表單。 現在第一個字段是使用s:select標記的類型。現在,根據用戶選擇的內容,我想在選擇框下方的同一頁面上加載下一個texfields。我該怎麼做?這是我的方法,但它不起作用。有關選擇框內容的加載字段

<s:form action="clientAction" method="post"> 
    <s:select name="type" label="Registration Type" 
    list="{'Student','Faculty'}" emptyOption="false" /> 
    <s:if test="type.equals(Student)">   
    <s:textfield label="FirstName" name="s_fname"/> 
    <s:textfield label="LastName" name="s_lname"/> 
    <s:textfield label="UserName" name="s_username"/> 
    <s:password label="Password" name="s_password"/> 
    <s:textfield label="EmailId" name="s_email_id"/> 
    </s:if>  
    <s:if test="type.equals(Faculty)"> 
    <s:textfield label="FirstName" name="fac_fname"/> 
    <s:textfield label="LastName" name="fac_lname"/> 
    <s:textfield label="UserName" name="fac_username"/> 
    <s:password label="Password" name="fac_password"/> 
    <s:textfield label="EmailId" name="fac_email"/> 
    <s:textfield label="Course Name" name="course_name"/> 
    <s:textfield label="Course Id" name="course_id"/> 
    </s:if> 
    <s:submit/> 
</s:form> 

回答

1

你可以使用jQuery做,你不需要負載從服務器領域,以及與JSP代碼搞亂了JavaScript代碼。您應該使用css_xhtml主題來隱藏/顯示選擇框更改事件上的字段。像這個例子一樣

<s:form action="clientAction" method="post" theme="css_xhtml"> 
    <s:select id="RegistrationType" name="type" label="Registration Type" 
       list="{'Student', 'Faculty'}" emptyOption="false" /> 
    <s:div id="Student" cssStyle="display: none;"> 
    <s:textfield label="FirstName" name="s_fname"/> 
    <s:textfield label="LastName" name="s_lname"/> 
    <s:textfield label="UserName" name="s_username"/> 
    <s:password label="Password" name="s_password"/> 
    <s:textfield label="EmailId" name="s_email_id"/> 
    <s:submit/> 
    </s:div> 

    <s:div id="Faculty" cssStyle="display: none;" > 
    <s:textfield label="FirstName" name="fac_fname"/> 
    <s:textfield label="LastName" name="fac_lname"/> 
    <s:textfield label="UserName" name="fac_username"/> 
    <s:password label="Password" name="fac_password"/> 
    <s:textfield label="EmailId" name="fac_email"/> 
    <s:textfield label="Course Name" name="course_name"/> 
    <s:textfield label="Course Id" name="course_id"/> 
    <s:submit/> 
    </s:div> 
</s:form> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#RegistrationType').change(function(){ 
     $('#'+this.value).css('display', 'block'); 
     if (this.value=='Student') $('#Faculty').css('display', 'none'); 
     else $('#Student').css('display', 'none'); 
    }); 
    }); 
</script> 
0

您可以使用JavaScript的S上onSelect事件:選擇標籤取決於選擇「註冊類型」的加載下一個字段的形式。

<s:select onselect="loadForm();" name="type" label="Registration Type" list="{'Student','Faculty'}" emptyOption="false" /> 
相關問題