为什么javascript只在第一条记录上运行而在其他记录中运行

时间:2016-07-21 23:35:35

标签: javascript jquery spring-mvc

我有一个问题,我从一个文件中使用foreach恢复数据,每行显示一个要编辑的按钮,在窗口中调用一个模态窗口,选择一种标准并显示相应的输入,问题在于,第一行只有,而不是在其他行。

部分代码:



	if (sel2.value == "actual") {
		document.getElementById("divactual").style.display = "block";
		divT=document.getElementById("divnuevo");
		divT.style.display = "none";
	}
	if(sel2.value == "nuevo"){
		document.getElementById("divnuevo").style.display = "block";
		divT=document.getElementById("divactual");
		divT.style.display = "none";
	}
	if(sel2.value == "vacio"){
		document.getElementById("divnuevo").style.display = "none";
		divT=document.getElementById("divactual");
		divT.style.display = "none";		
	}
}

#divnuevo, #divactual{
	display: block;
}

                         <table class="table table-list-search table-striped table-bordered text-table">
                            <thead>
										<tr>
											<th class="text-center">Tipo de Regla</th>
											<th class="text-center">Nombre Campo</th>
											<th class="text-center">Nombre Regla</th>
											<th class="text-center">Pos Ini</th>
											<th class="text-center">Pos Fin</th>
											<th class="text-center">Token</th>
											<th class="text-center">Criterio</th>
											<th class="text-center">Argumentos</th>
											<th class="text-center">Descripción</th>
											<th></th>                
										</tr>
									</thead>
									<tbody>
										<c:choose>
									   		<c:when test="${generals.size()==0}">
									      		<td colspan="11"><h3 class="text-danger">No existen Registros de Reglas Generales en el Archivo</h3> </td>
									        	<br/>
									   		</c:when>    
									  		<c:otherwise>
												<c:forEach items="${generals}" var="generals">
											    	<tr>
														<td>${generals.tipoRegla}</td>
												  		<td>${generals.nomCampo}</td>
												  		<td>${generals.nomRegla}</td>
												  		<td>${generals.posIni}</td>
														<td>${generals.posFin}</td>
														<td>${generals.token}</td>
														<td class="wrap"><p class="test"> ${generals.criterio} </p> </td>                        
														<td class="wrap"><p class="test2">${generals.argumentos} </p> </td>
														<td class="wrap"><p class="test"> ${generals.descrip} </p> </td>
														<c:set var="salary" scope="session" value="${generals.nomRegla}"/>
														<td>															
															<a role="button" 
																data-target="#Modificar_${generals.token }_${generals.tipoRegla}_${generals.nomCampo}_${generals.nomRegla}_${generals.posIni}_${generals.posFin}_${generals.criterio}"  
																class="btn btn-default modify" data-toggle="modal">
																<span class="fa fa-pencil-square-o white"></span>
															</a>
															<form action="deletegeneral" method="POST">
																<input type="hidden" value="${nombreArchivoReglas}" name="nombreArchivo" />
																<input type="hidden" value="${generals.nomRegla}" name="dnomRegla">
																<button type="submit" class="btn btn-default delete" onclick="showAlert('&iquest;Est&aacute; seguro que desea eliminar la regla \n &#34; ${generals.nomRegla} &#34;?',3);">
																	<span class="fa fa-trash-o white"></span></button>
															</form>
															<!--button type="button" class="btn btn-default modify" data-toggle="modal" 
																data-target="#Modificar2"><span class="fa fa-pencil-square-o white"></span></button-->
														</td>
													</tr>
														<!--Para Modal de Modificacion-->
													<div class="modal fade" id="Modificar_${generals.token}_${generals.tipoRegla}_${generals.nomCampo}_${generals.nomRegla}_${generals.posIni}_${generals.posFin}_${generals.criterio}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
														<div class="modal-dialog">
															<div class="modal-content">
																<div class="modal-header">
																	<button type="button" class="close" data-dismiss="modal">
																		<span aria-hidden="true">&times;</span> <span class="sr-only">Close</span>
																	</button>
																	<h4 class="modal-title" id="myModalLabel">Modificar Regla</h4>
																</div>
																			<!-- Modal Body -->
																<div class="modal-body">
																	<form action="actualizargenerals" method="POST">
																		<input type="hidden" value="${nombreArchivoReglas}" name="nombreArchivo" >
																		<label for="exampleInputPassword1">Tipo Regla</label>
																		<input	type='text' name='tipoRegla' class='form-control' id='nomCampo' readonly="readonly" placeholder=Tipo de Regla" value="${generals.tipoRegla}" required>					 
																                    	
																									
																		<label for="exampleInputPassword1">Campo</label> 
																		<input	type='text' name='nombreCampo' class='form-control' id='nomCampo' placeholder="Nombre del Campo" value="${generals.nomCampo}" required>
																					 
																					
																		<label	for="exampleInputPassword1">Regla</label> 
																		<input type='text' name='nombreRegla' readonly="readonly" class='form-control' id='nombreRegla' placeholder="Nombre de la Regla" value="${generals.nomRegla}" required /> 
																					
																					
																		<label for="exampleInputPassword1">Inicio</label> 
																		<input type='number' name='posIni' class='form-control' id='posInicial'  placeholder="Posición Inicial" value="${generals.posIni}" required min="0" max="254" />
																					
																		<label	for="exampleInputPassword1">Fin</label> 
																		<input type='number' name='posFin' class='form-control' id='posFinal' placeholder="Posición Final" value="${generals.posFin}" min="0" max="254" required>
																																				
																		<c:choose>
																			<c:when test="${generals.tipoRegla eq 'TOKEN' }">
																				<label for="token">Token</label> 
																				<input type='text' name='token' class='form-control' id='token' value="${generals.token}"  placeholder="Token">
																			</c:when>
																		</c:choose>
																																					
																		<label for="exampleInputPassword1">Argumentos</label>
																		<div class="row">
																		
																			<select class="form-control" name="tipocriterio" onchange="changeFunc4(this);" >
																				<option selected value="vacio" >----------</option>
																				<option value="actual" >ACTUAL</option>			
																				<option value="nuevo" >NUEVO</option>																				
																			</select>
																			
																			<div id="divactual"  name="divactual">
																					div actul no mostrara mas que el valor actual
																			</div>
																					
																			<div id="divnuevo"  name="divnuevo">
																					div nuevo tendra mas elementos
																			</div>
																		</div>
																								
																			<!-- Modal Footer -->
																		<div class="modal-footer">
																			<div class="row">
																				<div class="col-md-6 col-xs-6 col-sm-6 col-lg-6">
																					<button href="#" class="btn btnAceptar">Modificar Regla</button>
																				</div>
																		
																				<div class="col-md-6 col-xs-6 col-sm-6 col-lg-6">
																						<button type="button" class="btn btnCancelar" data-dismiss="modal">Cancelar</button>
																				</div>
																			</div>
																		</div>
																	</form>
																</div>
															</div>
														</div>
													</div>
																									
														<!--Finaliza Modal de modifacion-->															
												</c:forEach>
											</c:otherwise>
										</c:choose>
									</tbody>
								</table>
&#13;
&#13;
&#13;

想法?

1 个答案:

答案 0 :(得分:0)

以下是将代码放在结束表标记下面的示例。

</table>
<c:if test="${generals.size()!=0}">
    <c:forEach items="${generals}" var="generals">
        <!--Para Modal de Modificacion-->
        <div class="modal fade" id="Modificar_${generals.token}_${generals.tipoRegla}_${generals.nomCampo}_${generals.nomRegla}_${generals.posIni}_${generals.posFin}_${generals.criterio}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal">
                            <span aria-hidden="true">&times;</span> <span class="sr-only">Close</span>
                        </button>
                        <h4 class="modal-title" id="myModalLabel">Modificar Regla</h4>
                    </div>
                    <!-- Modal Body -->
                    <div class="modal-body">
                        <form action="actualizargenerals" method="POST">
                            <input type="hidden" value="${nombreArchivoReglas}" name="nombreArchivo" >
                            <label for="exampleInputPassword1">Tipo Regla</label>
                            <input  type='text' name='tipoRegla' class='form-control' id='nomCampo' readonly="readonly" placeholder=Tipo de Regla" value="${generals.tipoRegla}" required>


                            <label for="exampleInputPassword1">Campo</label>
                            <input  type='text' name='nombreCampo' class='form-control' id='nomCampo' placeholder="Nombre del Campo" value="${generals.nomCampo}" required>


                            <label  for="exampleInputPassword1">Regla</label>
                            <input type='text' name='nombreRegla' readonly="readonly" class='form-control' id='nombreRegla' placeholder="Nombre de la Regla" value="${generals.nomRegla}" required />


                            <label for="exampleInputPassword1">Inicio</label>
                            <input type='number' name='posIni' class='form-control' id='posInicial'  placeholder="Posición Inicial" value="${generals.posIni}" required min="0" max="254" />

                            <label  for="exampleInputPassword1">Fin</label>
                            <input type='number' name='posFin' class='form-control' id='posFinal' placeholder="Posición Final" value="${generals.posFin}" min="0" max="254" required>

                            <c:choose>
                                <c:when test="${generals.tipoRegla eq 'TOKEN' }">
                                    <label for="token">Token</label>
                                    <input type='text' name='token' class='form-control' id='token' value="${generals.token}"  placeholder="Token">
                                </c:when>
                            </c:choose>

                            <label for="exampleInputPassword1">Argumentos</label>
                            <div class="row">

                                <select class="form-control" name="tipocriterio" onchange="changeFunc4(this);" >
                                    <option selected value="vacio" >----------</option>
                                    <option value="actual" >ACTUAL</option>
                                    <option value="nuevo" >NUEVO</option>
                                </select>

                                <div id="divactual"  name="divactual">
                                    div actul no mostrara mas que el valor actual
                                </div>

                                <div id="divnuevo"  name="divnuevo">
                                    div nuevo tendra mas elementos
                                </div>
                            </div>

                            <!-- Modal Footer -->
                            <div class="modal-footer">
                                <div class="row">
                                    <div class="col-md-6 col-xs-6 col-sm-6 col-lg-6">
                                        <button href="#" class="btn btnAceptar">Modificar Regla</button>
                                    </div>

                                    <div class="col-md-6 col-xs-6 col-sm-6 col-lg-6">
                                        <button type="button" class="btn btnCancelar" data-dismiss="modal">Cancelar</button>
                                    </div>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>

        <!--Finaliza Modal de modifacion-->
    </c:forEach>
</c:if>

所以只需移动模态代码并保持原样。

编辑:

以下是用jQuery编写的changeFunc4函数的示例,仅针对当前选择框旁边的元素:

function changeFunc4(sel2){
var sel = $(sel2);
if (sel.val() == "actual") {
        sel.siblings( ".divactual" ).show();
        sel.siblings( ".divnuevo" ).hide();
    }
    if(sel.val() ==  "nuevo"){
        sel.siblings( ".divnuevo" ).show();
        sel.siblings( ".divactual" ).hide();
    }
    if(sel.val() == "vacio"){
        sel.siblings( ".divnuevo" ).hide();
        sel.siblings( ".divactual" ).hide();    
    }
}

注意,这使用css类引用,因此您需要更新div以包含类。 e.g。

<div id="divactual" class="divactual"  name="divactual">
    div actul no mostrara mas que el valor actual
 </div>