Добавление значения кнопки отправки в submit()

#javascript #jquery #ajax #jquery-ui

#javascript #jquery #ajax #jquery-пользовательский интерфейс

Вопрос:

Я использую диалоговое окно пользовательского интерфейса Jquery в качестве подтверждения при удалении записи. Чего я пытаюсь добиться, так это того, что при нажатии на кнопку отправки со значением «удалить» откроется диалоговое окно и подтвердится ваш выбор. Если вы выберете «да», форма будет отправлена со значением кнопки отправки. Я понимаю, что в данный момент это не сработает, потому что submit () не имеет способа узнать, какая кнопка была нажата, но я не уверен, как это сделать? Заранее большое спасибо.

 <script type="text/javascript">
$(document).ready(function(){
    $("#dialog").dialog({
      modal: true,
            bgiframe: true,
            width: 500,
            height: 200,
      autoOpen: false
      });

    $("#rusure").click(function(e) {
        e.preventDefault();
        $("#dialog").dialog('option', 'buttons', {
                "Confirm" : function() {
                    $("#tasks").submit();
                    },
                "Cancel" : function() {
                    $(this).dialog("close");
                    }
                });
        $("#dialog").dialog("open");
    });
});
</script>
<input type="submit" name="action" value="Delete" id="rusure"/>
  

Форма называется «задачи», а скрытый div, содержащий содержимое диалога, называется «dialog». На данный момент все работает нормально, за исключением отправки формы со значением кнопки отправки. В форме также есть 2 кнопки отправки.

Ответ №1:

Попробуйте:

 $("#rusure").click(function(e) {

    e.preventDefault();

    // Create hidden input from button and append to form
    var input = $('<input name="confirm_delete" value="yesplz" type="hidden" />').appendTo('#tasks');

    $("#dialog").dialog('option', 'buttons', {
            "Confirm" : function() {
                $("#tasks").submit();
                },
            "Cancel" : function() {
                $(this).dialog("close");
                $(input).remove();// Remove hidden input
                }
            });

    $("#dialog").dialog("open");

});
  

Демонстрация здесь:http://jsfiddle.net/Madmartigan/ZGLNc/1 /