ASP.Net Script Controls, возвращая False из OnClick и FireFox
Краткое объяснение:
У меня есть элемент управления сценария, который обрабатывает событие click в файле сценария. Обработчик кликов открывает запрос подтверждения и возвращает значение приглашения.
Проблема:
IE видит возврат False (Отмена выбрана в поле подтверждения), и нет обратной передачи. Firefox игнорирует это и запускает обратную передачу.
Решение?:
Я читал, что если бы я делал это по старинке, мне нужно было бы:
onClick="return SomeMethod();"
В разметке. Надеюсь, есть способ сделать это с помощью скриптов?
Пример:
Вот что у меня есть в файле скрипта:
//THIS IS THE METHOD CLICK CALLS
handleLnkDeleteButtonClick: function(e)
{
var confirmed = confirm('This will delete the current Message category and move all messages to the Oprhan cataegory. Continue?');
return confirmed;
},
initialize: function()
{
this._lnkDeleteButton = $get(this._lnkDeleteButtonID);
this._lnkDeleteButton.idpicker = this;
//HOOK BEGINS HERE
this._lnkDeleteButtonClick = Function.createDelegate(this, this.handleLnkDeleteButtonClick);
$addHandler(this._lnkDeleteButton, "click", this._lnkDeleteButtonClick);
//END HOOK HERE
NDI.WebControls.Client.PersonalMessageTypePicker.callBaseMethod(this, 'initialize');
},
dispose: function()
{
$removeHandler(this._lnkDeleteButton, "click", this._lnkDeleteButtonClick);
NDI.WebControls.Client.PersonalMessageTypePicker.callBaseMethod(this, 'dispose');
}
1 ответ
Хорошо, так что решил сам после слишком много времени, пытаясь правильно сформулировать слова для Google. Оказывается, есть метод для вызова, так что вам не нужно беспокоиться о возвращении true или false.
handleLnkDeleteButtonClick: function(e)
{
var confirmed = confirm('This will delete the currery Message category and move all messages to the Oprhan cataegory. Allow?');
if (!confirmed)
{
e.preventDefault();
}
},
Поэтому вместо того, чтобы возвращать подтвержденное, мне просто нужно было проверить его значение и вызвать метод e.preventDefault, чтобы остановить срабатывание клика.