диалоговое окно jQuery: подтвердите щелчок по кнопке отправки

Я пытаюсь сделать подтвердить диалоговое окно с помощью jQuery, но форма не становится отправленной вообще, это - то, что я получил:

    <script type="text/javascript">
    var currentForm;
    $(function() {
        $("#dialog-confirm").dialog({
            resizable: false,
            height: 140,
            modal: true,
            autoOpen: false,
            buttons: {
                'Delete all items': function() {
                    currentForm.submit();
                    $(this).dialog('close');
                },
                Cancel: function() {
                    $(this).dialog('close');
                }
            }
        });
    });

    function ask() {
        currentForm = $(this).closest('form');
        $("#dialog-confirm").dialog('open');
    }
</script>
<form ... >
    <input type="submit" value="delete" onclick="ask();return false;" />
</form>
8
задан Omu 21 May 2010 в 12:11
поделиться

2 ответа

Вам необходимо, чтобы ваша кнопка диалога отправила

, например:

               'Delete all items': function() {
                  $(this).dialog('close');
                  $("#myForm").submit();
                }

Остальная часть вашего кода верна, но в настоящее время он просто закрывает диалоговое окно и возвращается, вам действительно нужно отправить форму. Кроме того, лучше сделать это как обработчик кликов, а не onclick , как это ( обновлено для комментариев ):

    var currentForm;
    $(function() {
        $("#dialog-confirm").dialog({
            resizable: false,
            height: 140,
            modal: true,
            autoOpen: false,
            buttons: {
                'Delete all items': function() {
                    $(this).dialog('close');
                    currentForm.submit();
                },
                'Cancel': function() {
                    $(this).dialog('close');
                }
            }
        });
        $(".delete").click(function() {
          currentForm = $(this).closest('form');
          $("#dialog-confirm").dialog('open');
          return false;
        });
    });

Затем просто дайте свой класс delete , например:

<input class="delete" type="submit" value="delete" />
18
ответ дан 5 December 2019 в 07:10
поделиться

Если вы используете jQuery, делайте это правильно и избегайте встроенного Javascript:

$(function (){
  $("form").submit(function (){
    // return false if you don't want this to be submitted
    // maybe do a
    // return ask();
    // but with the code provided it doesn't seem
    // to work like that - ask() is not returning anything at all!
  });
});
5
ответ дан 5 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: