首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jsp中禁用“if”条件中的按钮

问如何在jsp中禁用“if”条件中的按钮
EN

Stack Overflow用户
提问于 2014-03-10 15:09:21
回答 1查看 1.9K关注 0票数 0

我有一个方法Processsots,我试图从submit按钮中调用它,但是当我通过OnClick元素进行调用时。它没有调用该方法。任何一个都可以帮助我在禁用submit按钮之后如何调用该方法。

代码语言:javascript
复制
<table>
    <tr>
        <td width=150> &nbsp; </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尝试的代码)

代码语言:javascript
复制
<form name="sotstestorderfoler" method="post" onsubmit="foo()" >
  <script type="text/javascript"> 
    function foo() { 
      sotstestorderfoler.username.disabled=true; <%Processsots();%> return true; 
    } 
  </script> 
</form>
EN

回答 1

Stack Overflow用户

发布于 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返回。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22303913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档