#ajax #jquery
#ajax #jquery
Вопрос:
У меня есть вызов jQuery AJAX, который создает и отображает подобную форму в PHP:
echo '<form class="add_suggested_solution_comment" name="suggest_solution_comment_form" method="post">';
echo '<p><textarea name="suggested_solution_comment" cols=65 rows=6 ></textarea></p>';
echo '<input type="hidden" name="problem_id" value="'.$problem_id.'" />'; echo '<input type="hidden" name="suggestion_id" value="'.$suggested_solution_id.'" />';
echo '<p><input type="submit" class="button" value="Add Comment"></input></p>';
echo '</form>';
Затем, когда пользователь нажимает на форму, я пытаюсь поймать щелчок в jQuery таким образом, используя атрибут class формы. По определенной причине я не могу использовать атрибут id формы.
Вот как выглядит этот jQuery:
$('.add_suggested_solution_comment').bind('submit',function()
Но по какой-то причине, когда пользователь отправляет форму, jQuery никогда не запускается. Есть идеи, почему?
Спасибо!!
Ответ №1:
Если вы создаете форму form
динамически с помощью AJAX, вам необходимо привязать обработчик отправки с помощью live()
метода jQuery:
$('.add_suggested_solution_comment').live('submit', function(){
alert('form submitted');
// other code
});
Комментарии:
1. было бы что-то вроде этого: $(‘.add_suggested_solution_comment’).live(‘click’,функция()
2. На самом деле функция live работала с директивой submit. Спасибо!
3. @GeekedOut: Смотрите мой пример выше. Если вы пытаетесь перехватить отправку формы, используйте
submit
. Использованиеclick
запускает событие при каждом нажатии на любой элемент формы, а не только при отправке. Я предполагаю, что вы хотитеsubmit
.4. @GeekedOut: Рад, что у вас получилось! Если мой ответ решил вашу проблему, не забудьте пометить его как принятый.
Ответ №2:
Вы запускаете это при загрузке? попробуйте
$(document).ready(function(){
$('.add_suggested_solution_comment').bind('submit',function()
});