Я ищу функцию jQuery, которая очистит все поля формы после отправки формы.
У меня нет HTML-кода для показа, мне нужно что-то общее.
Вы можете помочь?
Спасибо!
Я ищу функцию jQuery, которая очистит все поля формы после отправки формы.
У меня нет HTML-кода для показа, мне нужно что-то общее.
Вы можете помочь?
Спасибо!
Примечание: этот ответ имеет значение для сброса полей формы, а не для очистки полей - см. обновление.
Вы можете использовать встроенный JavaScript reset()
до reset всю форму до состояния по умолчанию.
Пример, предоставленный Райан:
$('#myForm')[0].reset();
Примечание. Это может не быть reset определенные поля, например type="hidden"
.
Как отмечено IlyaDoroshin, то же самое можно сделать, используя jQuery trigger()
:
$('#myForm').trigger("reset");
Если вам нужно сделать больше, чем reset формы до состояния по умолчанию, вы должны просмотреть ответы на Сброс многоступенчатой формы с помощью jQuery.
В reset форму (но не очистить форму) просто запускайте событие reset
:
$('#form').trigger("reset");
Чтобы очистить форму, см. другие ответы.
Нечто похожее на $( "# formId" ). reset() не очистят элементы формы, у которых их значения по умолчанию установлены на нечто, отличное от ". Один из способов, которым это может случиться, - это представление предыдущей формы. После того, как форма была отправлена reset(), значения формы" reset "будут переданы ранее отправленным, что, вероятно, не будет" ".
Один из вариантов по-настоящему очистить форму, а не просто reset it, - вызвать такую функцию:
function clearForm()
{
$(':input').not(':button, :submit, :reset, :hidden, :checkbox, :radio').val('');
$(':checkbox, :radio').prop('checked', false);
}
Когда я изначально пришел на эту страницу, мне нужно было решение, которое учитывало бы изменение форм по умолчанию и все еще способно очистить все элементы ввода.
Установите для параметра val
значение ""
function clear_form_elements(ele) {
$(ele).find(':input').each(function() {
switch(this.type) {
case 'password':
case 'select-multiple':
case 'select-one':
case 'text':
case 'textarea':
$(this).val('');
break;
case 'checkbox':
case 'radio':
this.checked = false;
}
});
}
<input onclick="clear_form_elements(this.form)" type="button" value="Clear All" />
<input onclick="clear_form_elements('#example_1')" type="button" value="Clear Section 1" />
<input onclick="clear_form_elements('#example_2')" type="button" value="Clear Section 2" />
<input onclick="clear_form_elements('#example_3')" type="button" value="Clear Section 3" />
Вы также можете попробовать что-то вроде этого:
function clearForm(form) {
// iterate over all of the inputs for the form
// element that was passed in
$(':input', form).each(function() {
var type = this.type;
var tag = this.tagName.toLowerCase(); // normalize case
// it ok to reset the value attr of text inputs,
// password inputs, and textareas
if (type == 'text' || type == 'password' || tag == 'textarea')
this.value = "";
// checkboxes and radios need to have their checked state cleared
// but should *not* have their 'value' changed
else if (type == 'checkbox' || type == 'radio')
this.checked = false;
// select elements need to have their 'selectedIndex' property set to -1
// (this works for both single and multiple select elements)
else if (tag == 'select')
this.selectedIndex = -1;
});
};
<form id="form" method="post" action="action.php">
<input type="text" class="removeLater" name="name" /> Username<br/>
<input type="text" class="removeLater" name="pass" /> Password<br/>
<input type="text" class="removeLater" name="pass2" /> Password again<br/>
</form>
<script>
$(function(){
$("form").submit(function(e){
//do anything you want
//& remove values
$(".removeLater").val('');
}
});
</script>
Вы можете просто использовать тип кнопки reset
.
<input type="text" />
<input type="reset" />
Изменить: Помните, что кнопка reset
, reset форма для исходных значений, поэтому, если поле имеет некоторое значение, заданное в поле <input type="text" value="Name" />
после нажатия reset
поле будет reset значением, вставленным пользователем, и вернемся со словом "имя" в этом примере.
Я использую следующее решение:
1) Настройка Плагин проверки JQuery
2) Тогда:
$('your form selector').resetForm();
идея триггера была умной, однако я хотел сделать это способом jQuery, поэтому вот небольшая функция, которая позволит вам сохранить цепочку.
$.fn.resetForm = function() {
return this.each(function(){
this.reset();
});
}
Тогда просто назовите это что-то вроде этого
$('#divwithformin form').resetForm();
или
$('form').resetForm();
и, конечно, вы все равно можете использовать его в цепочке
$('form.register').resetForm().find('input[type="submit"]').attr('disabled','disabled')
Будет что-то вроде работы?
function reset_form() {
$('#ID_OF_FORM').each (function(){
this.reset();
});
}
HTML
<form id="contactform"></form>
JavaScript
var $contactform = $('#contactform')
$($contactform).find("input[type=text] , textarea ").each(function(){
$(this).val('');
});
Простая и короткая функция для очистки всех полей