input - это элемент, а не атрибут или псевдоселект. Основная проблема, которую я вижу в вашем коде, это :
в :input
. Попробуйте выбрать jQuery('#form1 input')
, чтобы получить список.of
Также измените команду not()
, чтобы выбрать фильтрацию входов по типу
.not('[type="button"], [type="submit"], [type="reset"], [type="hidden"]')
, также как и для :hidden
, есть несколько факторов, которые вы должны знать об этом.
- У них значение CSS для отображения отсутствует.
- Это элементы формы с type = "hidden".
- Их ширина и высота явно установлены на 0.
- Элемент-предок скрыт, поэтому элемент не отображается на странице.
В свете вашего комментария, пожалуйста, попробуйте эту проверенную версию:
function resetForm()
{
$("#form1").find(':input').each(function()
{
var jelem = $(this);
switch(this.type)
{
case 'password':
case 'select-multiple':
case 'select-one':
case 'text':
case 'textarea':
jelem.val('');
break;
case 'checkbox':
case 'radio':
jelem.attr('checked',false);
}
});
}
@ source: http://www.electrictoolbox.com/jquery-clear-form/
Еще один способ сделать это - создать скрытый ввод в форме, но установить тип как reset
, например, так:
<input type="reset" style="display:none" />
, а затем выполнить:
function resetForm()
{
$("#form1[type='reset']").click();
}