Я новичок в jquery и ищу хороший ненавязчивый способ добавить замену jquery для javascript «подтверждения» к элементам HTML.В частности, я хочу иметь возможность использовать его для кнопок ASP.NET, LinkButtons, ImageButtons, HyperLink и т. Д., Что на стороне клиента означает любое из:
<input type="submit"... />
<a href="javascript:__doPostBack... />
<input type="image"... />
... etc ...
Решение, которое я придумала, заключается в добавлениипользовательский атрибут для серверного элемента управления ASP.NET (и, следовательно, для элемента клиента), например:
<asp:ImageButton ... data-confirmPrompt="OK to delete customer 123?" ... />
, который отображается как:
<input type="image" data-confirmPrompt="OK to delete customer 123?" ... />
Затем мне просто нужно добавитьщелкните обработчик для элементов, которые имеют этот пользовательский атрибут.В следующем примере используется jquery-impromptu , но тот же принцип работает с любой из реализаций модального диалогового окна jquery:
$(document).ready(function () {
$("[data-confirmPrompt]").click(function (event) {
var confirmPrompt = event.currentTarget.attributes['data-confirmPrompt'].value;
event.preventDefault();
$.prompt(confirmPrompt, {
buttons: { Yes: true, No: false },
callback: function (v, m, f) {
if (v) {
// User clicked Yes. Unbind handler to avoid
// recursion, then click the target element again
$(event.currentTarget).unbind('click');
event.currentTarget.click();
}
}
});
});
});
Кажется, что все это прекрасно работает в IE8 с XHTML 1.0 Strict.Итак, мои вопросы:
Будут ли все современные браузеры принимать пользовательские атрибуты, подобные этому?
Я понимаю, что это не является строго стандартным стандартом.Кто-нибудь может предложить совместимую со стандартами альтернативу, которая хотя бы столь же ненавязчива и проста в использовании?
UPDATE добавлен data-
префикс к пользовательскому атрибуту, который я понимаюпо крайней мере, делает его совместимым с HTML5.
ОБНОВЛЕНИЕ 2 См. этот дополнительный вопрос для улучшенного решения.