0

ここで、値を動的に入力の属性 ID に影響を与えたいと思います。コード jQuery : このコードでは、入力の最初の値を 0 に変更できますがid=ouseval_0__SousEval_Note、動的 ID を持つ多くの入力があります。

<script type="text/javascript">
$("#idselectdiv .tdLabelwidht").change(function () {
    var idd = $(this).val();
    alert(" selected value@ ="+idd);
    if(idd=="-1"){
        alert(" Veuillez selectionner un bon choix ");  
            }
    if($(this).find("option:selected").text()!="Conforme"){
        $("#souseval_5__SousEval_Note").val(0);         
    }
    alert(" selected option- "+$(this).find("option:selected").text());

    });
</script>

私のJSPには、選択タグがあり、ユーザーが準拠とは異なる選択タグのオプションを選択した場合、ここで値を編集したい入力があります。

<s:set name="n" value="0"/>
<s:iterator value="item"  status="idStatus"  >
<s:select
        label="%{Item_Libelle}"  
        headerValue="---------------- Select ---------------"
        headerKey="-1"
        list="sousitem"
        listKey="SousItem_ID"   
        listValue="SousItem_Libelle"
        cssClass="tdLabelwidht" 
        id="selectedId"
        name="%{'souseval['+#n+'].sousEvalItem.SousItem_ID'}"  
/>  
<s:textfield    name="%{'souseval['+#n+'].SousEval_Note'}"      
        value="%{ponderation}"    
                placeholder="entrer  Note"
/>
<s:set name="n" value="%{#n+1}"/>   
</s:iterator>

同等のコード HTML :

<tr>
<td class="tdLabel"></td>
<td>
<input id="souseval_5__SousEval_Note" type="text" placeholder="entrer Note" value="10" name="souseval[5].SousEval_Note">
</td>
</tr>
4

1 に答える 1

0

私は JSP に完全に精通しているわけではありませんが、サーバー側の言語として、リテラル値をクライアント側の出力に単純にエコーする何らかの方法が必要です。これは、サーバー側のコード全体で一般的に発生します。たとえば、マークアップに未加工の HTML があり、その中にテキストを入れるだけでよい場合です。

生の値を出力にエコーする同じメカニズムを使用して、JavaScript コードをエコーすることもできます。サーバー側のコードの観点からは、HTML と JavaScript の間に違いはありません。ページにレンダリングされるのは出力だけです。それが重要になるのはクライアント側だけです。

たとえば、次のような JavaScript があるとします。

$('#souseval_5__SousEval_Note').val(0);

5ここで、変数に基づいて を動的にしたいとします。これは JavaScript コードであるため、クライアント側の JavaScript 変数である必要があります。

$('#souseval_' + someVariable + '__SousEval_Note').val(0);

ただし、サーバー側の変数について話しているため、これらの変数はクライアント側の定数を発行できます。したがって、クライアント側のコードは次のようになります。

$('#souseval_' + '5' + '__SousEval_Note').val(0);

たとえば、次の 5 つが必要だとします。

$('#souseval_' + '1' + '__SousEval_Note').val(0);
$('#souseval_' + '2' + '__SousEval_Note').val(0);
$('#souseval_' + '3' + '__SousEval_Note').val(0);
$('#souseval_' + '4' + '__SousEval_Note').val(0);
$('#souseval_' + '5' + '__SousEval_Note').val(0);

そして、これらをサーバー側のコレクションに基づいてループで構築する必要があります。繰り返しますが、私は JSP に精通していませんが、疑似コードでは次のようになります。

<% for(int i = 0; i < someCollection.Length; i++) { %>
    $('#souseval_' + '<% i %>' + '__SousEval_Note').val(0);
<% } %>

基本的に、これはサーバー側のコレクションをループして、複数行のクライアント側コードを発行することです。これにより、上記の 5 行が作成されます。したがって、クライアント側ではループではなく、複数のステートメントを実行しているだけです。しかし、保守されているコード (サーバー側コード) は、コレクションに基づくループを使用しています。

于 2013-09-18T14:26:29.610 に答える