2011-01-17 7 views
1

私はjspページを作成しました。 1つのチェックボックスをオンにした場合、またはチェックボックスをオンにした場合、または対応するテキストボックスとリストボックスを同じページに表示する必要があります。jsp in javascript

私はチェックボックスをクリックするとjavascipt関数を呼び出そうとしました。 javascript関数には、テキストボックスを表示するコードが含まれています。しかし、それは動作しませんでした。

私はこのプロジェクトをStrutsでやっているので、チェックボックスの値を取得する方法はわかりません。 JavaScript関数の呼び出しも機能します。しかし、JavaScript関数ではJSPコードを入力しませんでした。

私のコードは、これは、それがどのように動作するかである

<tr> 
<td>SEJ:</td> 
<td>SEJ 1:<html:checkbox property="sej1" value="on" onclick="checkbox_trial()"></html:checkbox></td> 
<td>SEJ 2:<html:checkbox property="sej2" value="on" onclick="checkbox_trial()"></html:checkbox></td> 
</tr> 


    <script type="text/javascript"> 
    function checkbox_trial() 
    { 

     <% if(request.getParameter("sej1")=="on"){ 
    %> 
    <tr><td>SEJ1 Age<html:text property="sej1_age"></html:text></td></tr> 
    <tr><td>SEJ1 DOI<html:text property="sej1_doi"></html:text></td></tr> 
    <%} 

     else if(request.getParameter("sej2")=="on"){%> 
    <tr><td>SEJ2 Age<html:text property="sej2_age"></html:text></td></tr> 
     <tr><td>SEJ2 DOI<html:text property="sej2_doi"></html:text></td></tr> 
    <%} 

     else if((request.getParameter("sej1")=="on")&&(request.getParameter("sej2")=="on")){%> 
    <tr><td>SEJ1 Age<html:text property="sej1_age"></html:text></td></tr> 
    <tr><td>SEJ1 DOI<html:text property="sej1_doi"></html:text></td></tr> 
    <tr><td>SEJ2 Age<html:text property="sej2_age"></html:text></td></tr> 
    <tr><td>SEJ2 DOI<html:text property="sej2_doi"></html:text></td></tr> 
    <%} 

     else{%> 
    NOTHING <% } %> 
    } 

+0

あなたの質問に答えようとするときに参考になるようにいくつかのコードを投稿したいですか?具体的には、HTMLとJavaScript、および関連する部分だけを見る必要があります。あなたのプロジェクト全体を投稿しないでください) – jmort253

答えて

3

あります。Java/JSPは、ウェブサーバで動作し、HTML/CSS/JSを生成し、Webサーバは、ウェブブラウザに送信し、ウェブブラウザは、/ HTML/CSSを実行しますJS。 Java/JSPではありません。 Webブラウザでページを右クリックし、ソースを表示を選択します。 Java/JSPがその仕事を正しく終えていれば、その行はそこに表示されません。

JavaScriptを使用してJava/JSPコードを呼び出す場合は、Webサーバーに別のHTTP要求を呼び出して、特定の要求に基づいてJava/JSPコードを実行できるようにする必要があります。フォームを送信するか、非同期(ajaxical)のリクエストを発行することで、これを行うことができます。

Strutsを使用していることがわかっているので、Ajaxはやや複雑すぎると思います。私はちょうどチェックボックス

<input type="checkbox" name="show" value="true" onclick="submit()" /> 

のクリックでフォームを送信することをお勧めして、JSPは条件付きで入力フィールド(私はStrutsのをしないので、単なるJSTL例)

<c:if test="${param.show == 'true'}"> 
    <input type="text" /> 
    <select /> 
</c:if> 

を表示させたいです

を更新してください。コードの別の大きな問題があります。 Javaコードで文字列の値を==と比較することはできません(ELでのみ行うことができます)。 Javaコードでは、equals()メソッドを使用する必要があります。それ以外の場合は、値ではなく参照で比較されます。基本的なJavaも学ぶことをお勧めします。

+0

醜い解決策 - 私はOPの質問(経験の欠如)に基づいてこれがおそらく最も良いということに同意します。私はOPが結局はAJAXを使うことを学ぶことをお勧めします。 – jmort253

+0

OPに興味があっても、[この質問](http://stackoverflow.com/questions/4114742/simple-calculator-in-jsp)の私の答えには、最初のAjaxの手順の良い例が含まれています。しかし、Strutsをターゲットにしたのではありません。 – BalusC

+0

こんにちは、JSTLの例の最初の行を説明することは可能でしょうか。私はそれが初めてで、私は理解できません – Pavalesh