我有一个方法Processsots,我试图从submit按钮中调用它,但是当我通过OnClick元素进行调用时。它没有调用该方法。任何一个都可以帮助我在禁用submit按钮之后如何调用该方法。
<table>
<tr>
<td width=150> </td>
<td width="1999">
<h1 ALIGN='Left'>Please click on the Button to process Sots feed file</h1>
<form name="sotstestorderfoler" >
<br>
<input type="submit" name="username" value="Process Feed File" onclick="this.disabled='disabled';>
</form>
</td>
</tr>
</table>
<%
if ( request.getParameter("username") != null ) {
Processsots();
}
%>(用onsubmit尝试的代码)
<form name="sotstestorderfoler" method="post" onsubmit="foo()" >
<script type="text/javascript">
function foo() {
sotstestorderfoler.username.disabled=true; <%Processsots();%> return true;
}
</script>
</form>发布于 2014-03-10 15:21:59
我会使用表单的onsubmit来禁用按钮,如下所示:
认识到JSP代码是服务器端的,而JavaScript是客户端的,所以它们不能直接交互。
您正在混合JSP代码和JavaScript。JSP代码仅在服务器上执行。当浏览器请求网页时,将执行JSP代码以构建网页。这意味着它开始将像<script type="text/javascript">和function foo()这样的东西写入流中,然后发送回浏览器。当它到达<%Processsots();%>时,它不会简单地写出文本,它会调用您的方法Processsots()。然后它将写出Processots()的返回值。这意味着在用户看到您的页面或尝试按submit按钮之前,已经执行了您的方法。
这是许多新的JSP程序员所犯的错误;您的JSP代码在执行JavaScript时无法执行。JavaScript代码与JSP交互的唯一方法是通过HTTP请求,通常以AJAX调用或表单提交的形式进行。
而不是试图在JavaScript中调用JSP方法,您必须让表单提交到Servlet,然后该Servlet可以调用Processsots()并将结果作为HTTP返回。
https://stackoverflow.com/questions/22303913
复制相似问题