JQuery UI - диалог закрытия, какая кнопка была нажата - PullRequest
0 голосов
/ 06 сентября 2011

Я использую диалоговое окно jquery ui в качестве приглашения. В «подсказке» есть кнопки «ОК» и «Отмена». Проблема здесь в том, что он извлекает значение поля ввода в диалоге, когда запускается .dialog («close»), и моя единственная проверка состоит в том, что длина поля ввода должна быть больше 0 символов. Это означает, что даже когда вы наберете что-то и нажмете «Отмена», текст из приглашения будет отправлен. Я думал выяснить, какая кнопка была нажата ... Кто-нибудь знает решение этой проблемы?

Мой текущий код события:

$("#addBusinessarea").click(function(){
    createPrompt("Add new business area", "Business area name:");
    $( "#prompt" ).bind( "dialogclose", function(event, ui) {
        if($("#promptValue").val().length > 0){
            // Add business area 
        }
    });
});

Ответы [ 2 ]

1 голос
/ 02 августа 2013

Старый вопрос, но этот вопрос возник у меня, и я нашел правильный ответ, с помощью jQuery UI Dialog кнопок

event.target ваша кнопка.

$( "#prompt" ).bind( "dialogclose", function(event, ui) {
    if ($(event.target).text() != "Cancel") {
        if($("#promptValue").val().length > 0){
            // Add business area 
        }
    }
});
1 голос
/ 06 сентября 2011

Чтобы правильно решить, измените способ, которым вы определили кнопки для диалогового окна jQuery UI.Это может выглядеть так (обратите внимание, что у вас могут быть разные обработчики нажатия для разных кнопок):

$("#modal").dialog({
        buttons: {
            Yes: {
                text: 'Yeeees!',
                click: function() {
                    alert('I clicked yes!');
                }
            },
            No: {
                text: 'Hell no!',
                click: function() {
                    alert('I clicked no!');
                }
            }
        }
    })
...