как выполнить ajax функцию не через submit, а через обычный div?
Здравствуйте. Такая вот ситуация. Есть ajax функция:
$(function(){ $('#ajaxlogin').on( "submit", function(e) { e.preventDefault(); $.ajax({ type: "POST", url: "ajaxlogin.php", data: $('#ajaxlogin').serialize(), success: function(data){ alert(data); } }); }); }); ,и она работает, когда я нажимаю на input type="submit". Подскажите, как сделать, чтобы она работала, когда я нажимаю на div с классом, например, send? И вот еще вопрос сюда же. Если это будет div, то скорее всего форма не будет отправляться по нажатию на кнопку Enter. Как сделать, чтобы это происходило? Вообще это функция отправки формы на сервер, если я сделаю так: $('.send').click(function(){ $.ajax... }); или так: $('.send').submit();, то на почту придёт пустое письмо, поэтому наличие $('#ajaxlogin') обязательно. Однако в форме уже присутствует один submit и его трогать нельзя. По идее, в начале происходит ajax отправка формы на сервер, там она проверяется, если всё верно, то имитируется нажатие на кнопку submit... |
$('.send').click(function(){ $('#ajaxlogin').trigger('submit') }); |
<form method="POST" id="ajaxlogin" class="login_form"> <input type="text" name="login_name" id="login_name"> <input type="password" name="login_password" id="login_password" > <div class="send auth-btn" >Моя</div> <input type="submit" style="opacity:0;" id="dlelogin"> <input name="login" type="hidden" id="login" value="submit"> </form> Вот такая вот форма. Мне нужно избежать нажатие на submit. $('.send').on('click', function(){ $('#ajaxlogin').submit(); e.preventDefault(); $.ajax({ type: "POST", url: "ajaxlogin.php", data: $('#ajaxlogin').serialize(), success: function(msg){ if(msg=='yes'){ $('#dlelogin').trigger('click'); } if(msg=='no'){ $('.a-info').text('Неправильный логин или пароль') } } }); }); В начале в ajaxlogin проверяется логин и пароль, и если такое совпадение есть, т.е. вернулся yes, то имитируется нажатие на невидимый элемент #dlelogin. Ваше предложение решения не обходит #dlelogin , а нажимает на него. |
Цитата:
$('#ajaxlogin').trigger('submit') - это не нажатие на submit, это запуск обработчика формы onsubmit ранее на нее установленный, собственно это программная отправка формы. И это не мое решение, а разработчиков jQ. |
Часовой пояс GMT +3, время: 03:38. |