У меня есть форма с различными полями ввода: текстовое поле, флажок, переключатель, ввод текста и выбор ввода. Я использую jquery для отправки этого в базу данных без обновления страницы, которая работает отлично. Но проблема в том, что jquery не удаляет содержимое из полей после отправки. Флажок и переключатель все еще отмечены. Исследования, которые я провел на этом сайте, говорят, что эта проблема будет исправлена с помощью каждой функции jQuery. Я сделал это, но это не сработало. Пожалуйста, что я сделал не так в своем коде. Мой код jquery показан ниже.

< Сильный > Jquery

$("#sub").click( function() {
    var content =   tinyMCE.activeEditor.getContent();
    $('textarea[name=texteditor]').val(content);
    $.post( $("#myform").attr("action"), $("#myform").serialize(), function(info){ $("#result").html(info); } );
    clearInput();
    });

    $("#myform").submit( function() {
    return false;
});

function clearInput() {
    $("#input").each( function() {
     $(this).val('');
 });
 }
0
Oponjous 26 Авг 2017 в 20:49

4 ответа

Лучший ответ

Вы можете сбросить форму с помощью:

$("#myform")[0].reset(); 

Или

$('#myform').each(function(){
    this.reset();
});    
$('button').click(function(){
$('#myform').each(function(){
    this.reset();
})});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myform">
  <input type="text" />
  <input type="text" />
</form>
<button type="button">Clear</button>
0
26 Авг 2017 в 18:32

Ваш код неверен, вы можете перебирать id

function clearInput() {
   $("#input").each( function() {
      $(this).val('');
   });
}

Здесь вы идете с решением

function clearInput() {
  $("#myform input").each(function() {
    $(this).val('');
  });
}

Вот пример решения https://jsfiddle.net/tpLexsz1/1/

$('button').click(function(){
    $("#myform input").each(function() {
    $(this).val('');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myform">
  <input type="text" />
  <input type="text" />
</form>

<button>
Clear
</button>

Надеюсь, что это поможет вам.

0
Shiladitya 27 Авг 2017 в 10:18

В вашем коде вы пытаетесь очистить текстовое поле, а не сбросить форму. ваш код $ (this) .val (''); может работать только для текстового поля.

Для радио или флажок, вы должны установить this.checked = false; или в JQuery $ (this) .prop ('флажок', ложь);

Полный сброс формы может быть достигнут

Document.getElementById ( " MyForm " ) сброса ( ) .

0
jeetendra Mandal 26 Авг 2017 в 18:01

Возможно, есть лучший способ, но в прошлом я использовал только $ ('. Foo'). Val ('')

Это очистит только этот отдельный ввод, так что вы можете использовать forEach с его итерацией по всем входам формы.

0
stevenlacerda 26 Авг 2017 в 17:54