2015-12-29 2 views
0

Как сбросить поля формы более элегантно по сравнению с приведенным ниже кодом? Код работает. Но если у меня много полей формы, это выглядит не так хорошо. Есть ли более компактный способ?Как сбросить поля формы с помощью javascript или jquery?

<script> 
     function setSearchCriteria(){ 
      var searchcriteria = document.getElementById("TherapistSearch-SearchCriteria"); 
      searchcriteria.value = ""; 
     } 
     function setCity(){ 
      var city = document.getElementById("TherapistSearch-City"); 
      city.value = ""; 
     } 
     function setLastName(){ 
      var lastname = document.getElementById("TherapistSearch-LastName"); 
      lastname.value = ""; 
     } 
     function setFirstName(){ 
      var firstname = document.getElementById("TherapistSearch-FirstName"); 
      firstname.value = ""; 
     } 
} 
</script> 

<input type="button" class="btn btn-default" value="Reset form" 
onclick="javascript:clearForms();javascript:setSearchCriteria();setCity();setLastName();setFirstName();" title="Reset form"/> 
+1

Почему бы просто не изменить кнопку сброса с кнопки «type =» «' to 'type =« reset », а затем она будет автоматической и примерно такой же простой и изящной, какой она может быть. –

+0

См. Также http://stackoverflow.com/questions/16452699/how-to-reset-a-form-using-jquery-with-reset-method – aland

+0

Возможный дубликат [Очистить поля формы с помощью jQuery] (http: // stackoverflow.com/questions/6364289/clear-form-fields-with-jquery) –

ответ

2

Дайте класс css вашим полям ввода.

<input type="text" id="firstName" class="resettable" /> 
<input type="text" id="firstName" class="resettable" /> 
<select id="states" class="selectResettable"> 
    <option value="0">Select an option </option> 
    <option value="1">Michigan</option> 
    <option value="2">Ohio</option> 
<select> 
<input type="button" id="resetBtn" /> 

И использовать этот CSS класс (ы) в качестве селектора JQuery (ов), чтобы получить все эти входы и установите значение пустым значение/по умолчанию. Я также удалил onclick из разметки HTML-кода, поскольку мы собираемся сделать это в способе unobtrusive javascript.

Добавьте этот javascript, где мы регистрируем код для события click на нашей кнопке.

$(function(){ 

    $("#resetBtn").click(function(e){ 
     alert("Reset button clicked"); 
     //Set the input text fields to empty string 
     $("input.resettable").val(""); 

     //Reset the dropdowns. 
     $(".selectResettable").val("0") 
     //If you want to do something else, Do it here. 
    }); 

}); 
+0

Также вы можете создать еще один класс CSS для выпадающих списков или других типов ввода - для выпадающих меню вы всегда можете иметь список с текстом «Выберите вариант "со значением" 0 ". Затем в вашей функции сброса: $ (". DropDownCSSClass"). Val ("0"); –

+1

Абсолютно. Я добавил это к ответу для будущих читателей. Спасибо, что указали, что @StanShaw – Shyju

0
<input type="reset" id="resetBtn" class="resettable" /> 

использовать тип сброса кнопки или вызова сброса метод по форме, как показано ниже

<input type="button" 
            class="btn btn-default"         
            value="Reset form" 
            onclick="document.getElementById('myForm').reset();" 
            title="Reset form"/> 
2

Просто используйте HTML так, как это означало, которые будут использоваться, и воспользоваться кнопкой сброса:

<input type="reset" class="btn btn-default" value="Reset form" title="Reset form"/> 

Для этого не требуется JavaScript, нет дополнительной функциональности и является родным компонентом HTML-форм. Использование type="button" дает элементу внешний вид кнопки, но разделяет функциональность по умолчанию; с использованием type="reset" выдает вид кнопки и дает функциональность по умолчанию для сброса родительского элемента <form> в состояние загрузки по умолчанию по умолчанию.

Ссылки:

+1

Возможно, он не захочет очистить каждое поле в своей форме. –

+0

Это так, но если это так нужно упомянуть в вопросе (я с радостью добавлю дополнительную информацию, которая, по моему мнению, полезна, но я не поклонник угадывания того, чего хочет OP). –

+0

Правильно. Я просто указывал, что тип ввода = «перезагрузка» сбрасывает все поля формы для большей ясности. Я предпочитаю использовать классы и jQuery, поскольку код минимален и бесконечно более гибкий. Хороший ответ, хотя! –

Смежные вопросы