2015-05-25 2 views
0

У меня есть форма, как показано ниже, который я Validate с помощью этого validator плагин:form.reset() выпуска JQuery форм-валидатора

<div class="col-md-8 col-md-offset-2 form-contact"> 
    <form action="/Home/SendMessage" id="contact-form" method="post" autocomplete="off" class="wow bounceInUp has-validation-callback animated"> 
    //..All other form controls 

    </form> 
</div> 

, но когда я попытался resetform, как показано ниже

$('form#contact-form').reset(); 

ИЛИ

$('#contact-form').reset(); 

он дал мне console.error Uncaught TypeError: $(...).reset is not a function

, но когда я пытаюсь reset форму ниже он сбрасывает отлично.

$('.form-contact form').get(0).reset(); 

Может кто-нибудь сказать, почему это происходит или в чем причина этого?

+0

введите код в jsfiddle –

ответ

1

Это потому, что $('#contact-form') перенастраивает форму в массив объекта. В этом случае массив объекта формы с длиной 1. Напишите это в консоли браузера и посмотрите, что произойдет.

reset() является родной Java-функцией, которая требует специального form объекта, которого селектор не обеспечивает без $('#contact-form')[0]

использования $('#contact-form')[0].reset(); который получает first form из массива.

enter image description here

попробовать console.log ($ ("# контакт-форма")); в консоли. то вы можете увидеть результат, расширив объект.

+0

Ваше объяснение кажется законным, но еще одно сомнение здесь! Когда мы ссылаемся на 'form' с его' id', он должен сам возвращать объект формы? Любая идея, почему возвращается «массив объекта»? –

+0

Селектор jQuery всегда возвращает в массиве, который в случае текстовых полей дает значение 1-го объекта в массиве с '$ (..). Val()', но не работает с 'forms' одинаковым образом. – Ruchan

+0

Is есть ли какая-то конкретная причина для того, чтобы не работать с формой? –

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