У меня есть следующий самодельный плагин jquery:
(function($) {
$.fn.defaultButton = function(button) {
var field = $(this);
var target = $(button);
if (field.attr('type').toLowerCase() != 'text')
return;
field.keydown(function (e) {
if ((e.which || e.keyCode) == 13) {
console.log('enter');
target.click();
return false;
}
});
}
})(jQuery);
Я использую это так:
$('#SignUpForm input').defaultButton('#SignUpButton');
$('#SignUpButton').click(function(e) {
console.log('click');
$.ajax({
type: 'post',
url: '<%=ResolveUrl("~/WebServices/ForumService.asmx/SignUp")%>',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify({
email: $('#SignUpEmail').val(),
password: $('#SignUpPassword').val()
}),
success: function(msg) {
$.modal.close();
}
});
});
Первый раз, это работает. Во второй раз ничего не происходит. Я вижу ввод и нажимаю первый раз в журнале firebug, но во второй раз я вижу только сообщение ввода. Это похоже на то, что обработчик нажатия кнопки каким-то образом незарегистрирован. Есть мысли?