我正在使用spring MVC 3测试一个Web应用程序,我遇到了一个我无法解决的错误。
我有一个控制器,它为我提供了一个数据列表,该数据列表来自使用forEach语句在JSP中处理的数据库。
此外,在forEach
内部,我有一个表单,在单击按钮后将显示在jquery-ui dialog
中。
我的JSP看起来像这样:
<html>
/**
*
*
**/
<c:forEach items="${listaFecha}" var="fec">
<tr>
<td><c:out value="${fec.id}" /></td>
<td><c:out value="${fec.NOM_ASUNTO}" /></td>
<td><fmt:formatDate value="${fec.FEC_INICIO}" pattern="dd-MMM-YYYY" /></td>
<td><fmt:formatDate value="${fec.FEC_FIN}" pattern="dd-MMM-YYYY" /></td>
<td><c:out value="${fec.PERIODO}" /></td>
<td><button id="faqIE${fec.id}" value="${fec.id}" onclick="changeFec(${fec.id})">Editar</button></td>
</tr>
<div id="edit-form${fec.id}" class="edit" style="text-align:center;" title="Editar Fecha"> </br>
<form name="fechasE" method="POST" target="_parent" action="<c:url value="/manage/insertaForm"/>" id="form2E${fec.id}">
<label style="margin-right:133px;">Tipo de Solicitud: </label></br>
<input type="text" class="fields" name="asE" value="${fec.NOM_ASUNTO}" disabled/></br>
<label style="margin-right:158px;">Fecha Inicial: </label> </br>
<input type="text" class="fields" name="date1E" value="<fmt:formatDate value="${fec.FEC_INICIO}" pattern="dd-MMM-YYYY"/>" /></br>
<label style="margin-right:165px;">Fecha Final: </label></br>
<input type="text" class="fields" name="date2E" value="<fmt:formatDate value="${fec.FEC_FIN}" pattern="dd-MMM-YYYY"/>" /></br>
<label style="margin-right:185px;">Periodo: </label></br>
<input type="text" class="fields" name="pdE" value="${fec.PERIODO}"/></br>
</form>
</div>
</c:forEach>
/**
*
*
**/
<script type="text/javascript">
function changeFec(n) {
$( "#edit-form"+n ).dialog({
autoOpen: true,
height: 390,
width: 350,
modal: true,
resizable: false,
buttons: {
Editar: function() {
$( "form2E"+n ).submit();
$( this ).dialog( "close" );
},
Cancelar: function() {
$( this ).dialog( "close" );
}
}
});
}
</script>
它在Opera,Google Chrome和Firefox中运行良好,但在IE7,8,9中没有。 我不知道为什么!我一直在寻找几个小时没有成功!我希望有人可以帮助我。
提前致谢,抱歉我的英语不好。
修改:
这就是它必须工作的方式http://jsfiddle.net/NbddB/22/。
但changeFec(value)
中的值必须是dinamic,而div是在forEach
语句中动态创建的。
答案 0 :(得分:1)
toggleExpand(e) {
e.preventDefault()
e.stopPropagation();
if (!this.state.expanded) {
document.addEventListener('click', this.handleOutsideClick, false);
} else {
document.removeEventListener('click', this.handleOutsideClick, false);
}
this.setState({
expanded: !this.state.expanded
});
}
handleOutsideClick(e) {
if (this.node.contains(e.target)) {
return;
}
this.toggleExpand(e);
}
toggleOpen(e) {
e.preventDefault()
e.stopPropagation();
}
render() {
return (
{this.state.expanded && (
<div
className={styles.pointer}
>
<div
onClick={this.toggleOpen}
>
<button
onClick={this.toggleExpand}
className={[
styles.close}
alt="Close Button"
/>
<div
className={
styles.pop}
>
<div>
<span className={styles.label}>
abcd
</span>
</div>
</div>
</div>
</div>
)}
)}
答案 1 :(得分:0)
回答我的问题!对不起,如果有人浪费时间试图帮助我,我真的很想做到这一点。
问题是我没有给你足够的关于我的问题的信息..在表格中(我的表格被包括在内)我正在使用tablesorter with tablesorterPager插件,这就是问题所在。似乎tablesorterPager在jquery-ui对话框中不太喜欢我的表单:(
嗯,我唯一能做的就是将表单放在桌子外面,然后在每个浏览器中一切正常! =)
谢谢和问候。