Этому вопросу уже несколько лет, но у меня все еще есть проект, использующий YUI 2.9.0, и я только что столкнулся с той же проблемой, поэтому я поделюсь своим решением на случай, если кто-то еще окажется в том же джеме.
Об этом вопросе стоит отметить несколько вещей. Во-первых, проблема, описанная Габриэлем, в которой обработчик нажатия кнопки YUI 2.9.0, отправляющий форму до вызова обработчика нажатия, не является проблемой в IE, по крайней мере, через IE9. На FireFox через хотя бы FF12 проблема возникает. Я подозреваю, что это также будет проблемой в Chrome, Safari и в большинстве, если не во всех других браузерах, а также в том, что я вижу в обработчике нажатия кнопки YUI Button, что является особым случаем для IE.
Кроме того, мне не понравилось ни одно из предложенных Габриэлем решений. Использование кнопки ссылки лишило законной силы все пользовательские стили, которые я применил к своей кнопке отправки, использование обработчика mousedown теряет некоторую семантику пользовательского интерфейса клика, и по какой-то причине YUI Button теряет исходное имя, которое я дал кнопке подтверждения или, по крайней мере, он не отображается в значениях POSTed на стороне сервера. Однако в духе кнопки ссылки Габриэля я заменил кнопку отправки на кнопку ввода, которая по умолчанию не отправляется, затем добавил скрытый ввод и сам отправил форму:
...
<form id='form'>
<input type="button" value=">" id="start_survey">
...
function start_survey (p_oEvent, p_aArgs) {
var input = document.createElement ('input');
input.type = 'hidden';
input.name = this.get ('name');
input.value = '>'
var form = YAHOO.Dom.get ('form');
form.appendChild (input);
form.submit();
}
new YAHOO.widget.Button ("start_survey", {onclick: {fn: start_survey}});
...
Наконец, поскольку YUI отправляет форму по щелчку, еще одно решение должно заключаться в том, чтобы просто отследить событие отправки формы и проверить, является ли цель события вашей кнопкой, сделать то, что вам нужно сделать, а затем отпустить или остановить отправку. это, по мере необходимости.