Javascript и JSP для 2 кнопок с отправкой - PullRequest
1 голос
/ 30 апреля 2020

Пока не совсем в 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");
    }   

но проблема в том, что "запрос" не найден компилятором. Я не знаю, куда указывает запрос.

Когда я выполняю код в браузере и проверяю, я получил сообщение об ошибке. Мне пришлось замаскировать настоящие имена методов с помощью блабла, извините за это.

1 Ответ

1 голос
/ 01 мая 2020

Вы можете использовать событие 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>
...