Передача значений в функцию модальных окон - PullRequest
0 голосов
/ 08 мая 2018

У меня есть список кнопок. Каждой кнопке присваивается идентификатор (PK), который можно использовать для удаления элемента из базы данных. Код ниже.

htp.tableData('<button class = "DELETE" value = '||patch_id||'>DEL</button>');

Я хочу иметь возможность зафиксировать причину для УДАЛИТЬ, поэтому после нажатия на кнопку у меня появляется модальное окно с надписью «Пожалуйста, введите причину удаления».

dialog = $( "#dialog-form" ).dialog({
               autoOpen: false,
               height: 400,
               width: 580,
               show: { effect: "blind", duration: 800 },
               modal: true,
               buttons: {
                 "Submit": RunDeleteAjax,

                 Cancel: function() {
                   dialog.dialog( "close" );
                 }
               },
               close: function() {
                 form[ 0 ].reset();
                 allFields.removeClass( "ui-state-error" );
               }
             });

Обратите внимание, что есть функция с именем "RunDeleteAjax". Эта функция отвечает за вызов AJAX, который вызывает процедуру для удаления идентификатора. У меня есть одна проблема: я не уверен, как получить идентификатор кнопки, которую я нажал. Я не уверен, смогу ли я передать его как-нибудь модальному окну или даже вызываемой функции. Я могу получить значение нажатой кнопки, используя следующее:

$(".DELETE").on("click", function() { 
       var _btnVal = $( this ).attr("value")
       dialog.dialog( "open" );
  });

Но с этого момента, как я могу передать его в модальное окно или, если это вообще возможно. Потому что, как только я смогу, я могу просто использовать его в качестве параметра в моей функции «RunDeleteAjax».

Кроме того, действительный код модальной формы приведен ниже:

<div id="dialog-form" class="dform" title="">
        <p class="validateTips">Please provide a detailed description of your changes.</p>

          <form>
            <fieldset>

              <label for="textarea">Reason</label>
              <textarea rows="4" cols ="75" name="EditReason" class="text ui-widget-content ui-corner-all"></textarea>

              <!-- Allow form submission with keyboard without duplicating the dialog button -->
              <input type="submit" tabindex="-1" style="position:absolute; top:-1000px">
            </fieldset>
          </form>
        </div>');

Любая помощь по этому вопросу будет принята с благодарностью. Заранее спасибо.

1 Ответ

0 голосов
/ 08 мая 2018

После нескольких попыток я нашел решение этой проблемы. Я хотел опубликовать это на тот случай, если у кого-то еще возникла подобная проблема. Мне нужно было использовать метод Jdery .data и добавить значение (я уже записывал) в мой «диалог».

 $("#dialog-form").data("param", _btnVal).dialog( "open" );

Теперь, когда я подключил его к моему «Диалогу», я могу использовать это значение. Мне удалось получить это значение и передать его в мою функцию RunDeleteAjax. Мне также нужно было обновить раздел «Кнопки».

buttons: {
                 "Submit": function() {

                   var _gts = $( this ).data("param");
                   RunDeleteAjax(_gts);
                 },

                 Cancel: function() {
                   dialog.dialog( "close" );
                 }
               },

Пока я искал ответы, я увидел несколько разных способов сделать это. Исходя из того, что я пытался сделать, поправки, которые я сделал выше, работали лучше всего для меня.

...