Javascript 和 JSP 用于 2 个提交按钮

Javascript and JSP for 2 buttons with submit

还不是真正的javascript,希望你能帮我解决这个可能是新手的问题。 我正在尝试使用第二个按钮扩展现有的工作 jsp 页面。它的类型是提交。 我发现了一些半模拟的问题和答案,但我只是不让它工作。 我为这个例子添加的按钮是 button.doebi。它们在浏览器的屏幕上显示得很好。

在我的 jsp 文件中:

<td colspan="4" align="right">
    <button id="sysBlaBlacControlSearchSubmit" type="submit" value="normal" class="standardButton">
        <bean:message key="button.search" />
    </button>
    <button id="sysBlaBlaControlSearchReset" type="reset" class="standardButton">
        <bean:message key="button.reset" />
    </button>
    <button id="sysBlaBlaControlSearchDoebi" type="submit" name="doebi" value="doebi" class="standardButton">
        <bean:message key="button.doebi" />
    </button>
</td>

在我的 js 文件中:

$('#SysBlaBlaControlSearchForm').submit(function(e) {
        e.preventDefault();
        sendAjaxForm('SysBlaBlaSearch', '/sysblabla/sysBlaBlaSearch.do', 'searchSysblabla', function (result) {
            refreshTableData(systematicControlSearchResultTable, result);

            sendAjaxGET('/blablabla/blablabla.do', 'getblablablaSearchWarning', undefined, function (result) {
                $('div#SysBlaBlaBlaSearchWarning').text(result.value);
            });

        });
    });  

现在我想看到 按钮已被按下,因为显然这两个按钮都在 .submit

中处理

在这里找到了像 if (request.getParameter("xxx")) 这样的例子,我喜欢在 js 文件中像这样注入我的代码:

$('#SysBlaBlaControlSearchForm').submit(function(e) {
        if (request.getParameter("doebi") == null) {
        e.preventDefault();
        console.warn("NOT inside doebi click");
        sendAjaxForm('SysBlaBlaSearch', '/sysblabla/sysBlaBlaSearch.do', 'searchSysblabla', function (result) {
        ...
    } else {
        console.warn("inside doebi click");
    }   

但问题是 "request" 没有被编译器找到。 我不知道请求指向哪里。

当我在浏览器中执行代码并进行检查时,请求出现错误。 我不得不用 blabla 伪装真正的方法名称,对此感到抱歉。

您可以使用 click 事件让当前按钮被点击,然后在 submit 上您可以检查哪个按钮被点击并执行与该按钮相关的进一步操作。

演示代码 :

var $submit = null;
var $button = $('#SysBlaBlaControlSearchForm').find('button');
$('#SysBlaBlaControlSearchForm').submit(function(e) {
  e.preventDefault();
  //checking the value of button click
  if ($submit.name == "normal") {
    //normal buton is clicked
    console.warn(" inside normal click");
    //put your ajax code here

  } else if ($submit.name == "doebi") {
    //inside doebii
    console.warn("inside doebi click");
    //put your ajax code here
  } else {
    console.warn("reset button clicked");
  }


});
//when button is clicked
$button.click(function(event) {
  //putting current button clicked reference in variable $submit
  $submit = this;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="SysBlaBlaControlSearchForm">
  <button id="sysBlaBlacControlSearchSubmit" type="submit" name="normal" class="standardButton">
        <bean:message key="button.search" />Normal
    </button>
  <button id="sysBlaBlaControlSearchReset" type="reset" class="standardButton">
        <bean:message key="button.reset" /> Reset
    </button>
  <button id="sysBlaBlaControlSearchDoebi" type="submit" name="doebi" namename="doebi" class="standardButton">
        <bean:message key="button.doebi" />Doebi
    </button>

</form>