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 中,我有一个 slect 标记,如果用户选择与符合不同的选择标记选项,我想在此处编辑的输入值:

<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 回答