在我的JSP中,我根据JSTL的值调用JSP函数。我看到JS(在JSTL内部)里面的alert语句工作,但不是JQuery。那是为什么?
<c:set var = "error" value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>
<c:choose>
<c:when test="${error=='not unregistered'}">
<script type="text/javascript">
alert("Hi");
openSignUp();
</script>
</c:when>
<c:otherwise>
<c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" />
</c:otherwise>
</c:choose>
<c:remove var = "SPRING_SECURITY_LAST_EXCEPTION" scope = "session" />
<script>
function openSignUp(){
$('#signUp_dialog').dialog({
width:350,
open: function(event, ui) {
$(".ui-button-text").remove();
$(".ui-dialog-title").css("margin-right","275px");
}
});
}
</script>
我也尝试过跟踪,直接将代码放在JSTL的脚本标记内的JS函数中。仍然没有运气。
<c:set var = "error" value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>
<c:choose>
<c:when test="${error=='not unregistered'}">
<script type="text/javascript" src="<c:url value="/resources/scripts/jquery-ui-1.11.4/external/jquery/jquery.js" />">
$(document).ready(function() {
$('#signUp_dialog').dialog({
width:350,
open: function(event, ui) {
alert("hi");
$(".ui-button-text").remove();
$(".ui-dialog-title").css("margin-right","275px");
}
});
});
</script>
</c:when>
<c:otherwise>
<c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" />
</c:otherwise>
</c:choose>
<c:remove var = "SPRING_SECURITY_LAST_EXCEPTION" scope = "session" />
请帮帮我。感谢。
答案 0 :(得分:0)
您的javascript代码(无论是普通的java脚本还是jquery)应该在页面加载时触发(在完成所有java / jsp / jstl处理之后)。因此,在JSP页面末尾的脚本块中调用openSignUp(在处理完所有元素之后)。
...JSP page
<script>
//openSignUp definition here
//check the condition first
if(${error} == 'not unregistered'})//this should translate to either true or false
{
openSignUp();//if the conditon is true, call the dialog
}
</script>
答案 1 :(得分:0)
您是否导入了jquery相关文件? 还要在加载页面后检查查看源。