我有一个方法Processsots,我试图从提交按钮调用,但当我通过OnClick元素diasble。它没有调用方法。任何人都帮助我如何在禁用提交按钮后调用该方法
<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>
答案 0 :(得分:0)
我会使用表单的onsubmit
来禁用您的按钮,就像这些答案所示:
认识到JSP代码是服务器端的,JavaScript是客户端的,所以他们不能直接相互交互。
您正在混合JSP代码和JavaScript。 JSP代码仅在服务器上执行。当您的浏览器请求您的网页时,将执行JSP代码以构建您的网页。这意味着它开始将诸如<script type="text/javascript">
和function foo()
之类的内容写入流中以发送回浏览器。当它达到<%Processsots();%>
时,它不会简单地写出该文本,而是调用您的方法Processsots()
。然后它会写出Processots()
的返回值。这意味着您的方法已经在用户查看您的页面或尝试按下提交按钮之前执行。
这是许多新的JSP程序员犯的错误;在执行JavaScript时,您的JSP代码无法执行。 JavaScript代码与JSP代码交互的唯一方法是通过HTTP请求,通常采用AJAX调用或表单提交的形式。
您必须将表单提交给Servlet,而不是尝试在JavaScript中调用JSP方法,然后可以调用Processsots()
并将结果作为HTTP响应返回。