这里我想影响一个值来动态地输入id的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标签,如果用户选择了不同符合的select标签选项,我想在此处编辑的值:
<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>
答案 0 :(得分: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行。所以在客户端它没有循环,它只是运行多个语句。但是维护的代码,即服务器端代码,正在使用基于集合的循环。