Отправить форму с ассоциированным Live Event - PullRequest
0 голосов
/ 08 ноября 2010

Я занимаюсь разработкой веб-приложения с использованием asp.net mvc и jquery.У меня на странице 10 форм, и я использую jquery (живые события), чтобы сделать их асинхронную отправку.Примерно так:

Все работает нормально, но мне нужно отформатировать Div с изображением, и когда пользователь нажимает на этот div, мне нужно отправить форму, но ... форма не выполняет операцию assyncкак кнопка отправки.Он выполняет поведение по умолчанию ...

Мой div выглядит примерно так:

Мой сценарий:

$("#jobs form").live('submit', function() {
   $.post($(this).attb('action'), $(this).serialize(), function(result) {
     //get and format result in my content divs...
   });
});

Мой HTML:

<div id="jobs">
<% foreach(var job in Model) { %>
<form ...>
  <!-- hide this button -->
  <input type='submit' class='hide' id='mysubmitButton_<%=job.Id%>' />
  <!-- need to submit this form -->
  <div class='buttonImage' onclick="$('#mysubmitButton_<%=job.Id%>').click();"></div>
</form>
<% } %>
</div>

Как я могу установить onclick, чтобы сделать асинхронную отправку, например, кнопку «Отправить» на моей странице?

Я не знаю, как отформатировать эту кнопку, поэтому я использую div или гиперссылку ...

Спасибо

1 Ответ

1 голос
/ 08 ноября 2010

Во-первых, у вас есть $.post($(this).attb('action'), .... Это не сработает - функция attr, поэтому вам нужно $.post($(this).attr('action'), .... Еще лучше было бы избежать объекта jQuery и использовать $.post(this.action, ....

Для отправки вашего изображения должен работать следующий код:

$('.buttonImage').live('click', function(){
    $(this).closest('form').submit();
});

Это найдет родительскую форму и вызовет на ней действие submit, которое должно вызвать обработчик, определенный вами в вашем вопросе.

Просто чтобы заметить, что вы не видите действия по умолчанию. Вам нужно вызвать свой метод live в форме, например так:

$("#jobs form").live('submit', function(e) {
    e.preventDefault();
    // do the rest of your code
}

Это предотвращает действие отправки по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...