Dojo: Невозможно остановить событие "onClick" dijit - PullRequest
2 голосов
/ 12 августа 2010

Я не мог остановить событие onClick?Если я просто использую узел dom с событием onclick, то dojo.stopEvent() работает, но не с onClick виджета.Я получаю сообщение об ошибке "Невозможно загрузить страницу ... статус 0" .Я обнаружил, что это происходит, когда страница обновляется во время выполнения вызова Ajax.Я публикую свой код.Любая помощь приветствуется

    // create a button which will be replaced by the Button widget
    var submitButton = dojo.create('button', {type:"submit", id:"submitButton"}, popupFormControlDiv);

    var popupFormSubmitButton = new dijit.form.Button({label: "Create", type:"submit"}, "submitButton");

    dojo.connect(popupFormSubmitButton, "onClick", function(event) {
        //Stop the submit event since we want to control form submission.
        event.preventDefault();
        event.stopPropagation();
        dojo.stopEvent(event);

        // construct the arguments for the post request
        var xhrArgs = {
            form: popupForm,
            url: "/admin/sys-config/registration-form/add",
            handleAs: "text",
            load: function(data) {
                console.log("success");
            },
            error: function(error) {
                console.log("error");
            }
        }
        var deferred = dojo.xhrPost(xhrArgs);
    }); 

Ответы [ 3 ]

2 голосов
/ 16 августа 2010

Я только что попробовал и с виджетами, и с обычными кнопками, и обоими способами получить обработчик нажатия кнопки, чтобы остановить отправку формы событием.

Только DOM: http://jsbin.com/inoyo4/edit

Виджеты: http://jsbin.com/ayomu4/edit

Обратите внимание, что с DOM я подключаюсь к onclick, в то время как с виджетами я подключаюсь к onClick. Обозначение верблюжьего падежа регулярно используется dijit, а виджеты dijit включают множество обработчиков событий, которые отображаются на стандартные события DOM (строчные буквы) на узлах в виджетах. К сожалению, это может вызвать путаницу.

Вы можете найти это стоит прочитать: http://docs.dojocampus.org/quickstart/events

1 голос
/ 21 марта 2012
var f=dijit.byId("id");
f.set("onClick",function(){;});
0 голосов
/ 12 августа 2010

Вы можете вернуть false в функции обработчика onClick, чтобы отменить отправку формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...