#jquery
Вопрос:
Это мой код jQuery:
$('#contactForm').submit(function(e){
e.preventDefault()
$('#loading').css("display", "block")
$.ajax({
type : "POST",
url : "/contact/",
data: {
sender_name : $('#name').val(),
sender_email : $('#email').val(),
message_subject : $('#subject').val(),
message_text : $('#message').val(),
csrfmiddlewaretoken : csrftoken,
datatype : "json",
},
success: function(){
$('#loading').css("display", "none"),
$('#sent-message').css("display", "block")
},
});
});
Это работает без каких-либо проблем. Однако я пытаюсь сбросить его после отправки, и после поиска в StackOverflow я добавил это:
success: function(){
$('#loading').css("display", "none"),
$('#sent-message').css("display", "block"),
$('#contactForm').trigger('reset')
},
И это:
success: function(){
$('#loading').css("display", "none"),
$('#sent-message').css("display", "block"),
$('#contactForm')[0].reset()
},
И ни один из них не работает. Чего мне не хватает?
Комментарии:
1.
$('#contactForm')[0].reset()
работает правильно. Обратите внимание, чтоreset()
поля будут возвращены к своим начальным значениям, а не пустым значениям, поэтому, если вы предварительно заполнили поля, вам нужно будет вручную установитьval('')
их вместо сброса всей формы. Если это все еще не работает для вас, убедитесь, что у вас есть только 1#contactForm
элемент в DOM и никаких ошибок в консоли.2. @Sravani Операция уже идет
3. @RoryMcCrossan Форма не заполнена заранее. Это контактная форма, и
reset()
она не возвращает полям их первоначальные значения, которые являются пустыми. У меня есть только одинcontactForm
(остальная часть кода jQuery работает без проблем), и ошибки нет.4. @Sravani Вы прочитали мой вопрос и код?
5. Вызывается ли
success
обработчик?
Ответ №1:
Пожалуйста, посмотрите мой фрагмент кода. Сбросить свойство работ. Если это не работает, вам нужно обновить свой html-код здесь.
<form id="contactForm">
<input type="text" />
<input type="button" onClick="resetForm();" value="Reset">
</form>
<script
src="https://code.jquery.com/jquery-3.6.0.min.js"
integrity="sha256-/xUj 3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
crossorigin="anonymous"></script>
<script>
function resetForm()
{
$.ajax({
url:"test.php",
success:function(){
$("#contactForm")[0].reset();
},
error:function(){
$("#contactForm")[0].reset();
}
});
}
</script>