$ ( "...") [0] .RESET ня функцыя ... зваротныя формы ў JQuery

Я спрабую аднавіць некаторыя формы з JQuery, але ў мяне ўзнікаюць некаторыя праблемы. Акрамя рашэнняў, якія ўключаюць напісанне функцыі або прыстасаваныя убудова, я працягваю знаходзіць час і зноў, што метад скіду не з'яўляецца стандартнай часткай JQuery, але яна з'яўляецца часткай стандартнага Javascript.

Ва ўсякім выпадку, мой першы падыход павінен быў пайсці з

. <�Код> $ ( "# theFабоm") скід ();

дзе ID = «theFабоm» формы.

Гэта не спрацавала, відавочна, таму што мяркуецца, што скід() была часткай JQuery.

Наступная рэч, якую я паспрабаваў было

<�Код> document.getElementById (theFабоm) .RESET ();

Што не працуе. Я пачатковец у JQuery, так што я не ўпэўнены, калі я магу змяшаць нармальны Javascript з JQuery. Я павінен гучаць як дэбіл на гэта кажу.

Ва ўсякім разе, пасля рабіць некаторыя даследаванні больш я знайшоў час і зноў, што я мог бы выкарыстаць скід() у JQuery, робячы гэта ...

<�Код> $ ( "# theFабоm") [0] .RESET ();

або

$("#theFабоm").get(0).reset();

In every article that involves these two snippets everyone in the comments had gotten it wабоking.

Акрамя мяне.

The errабо console keeps telling me that what I have written does not exist. I have checked all of my code and there is no other instance of the wабоd "reset", so it can't be that either.

Ва ўсякім разе, я ў тупік.

10
Даць форму, няма нічога дрэннага ў JavaScript (прынамсі некаторыя з іх).
дададзена аўтар adeneo, крыніца

7 адказы

Рашэнне першапачатковага пытання ў гэтай тэме

Для HTML формы, як гэта:

<form id="theForm">
</form>

Пры выкарыстанні document.getElementById ( "theForm"). Скід() , калі вы атрымліваеце паведамленне пра памылку JS кажучы

<�Р> скід() не з'яўляецца функцыяй </р>

прычына можа быць элементам, які мае Скід як назва або ID . Я сутыкнуўся з такой жа праблемай.
Прысваенне які-небудзь элемент, як Скід перавызначаем функцыю скіду ().

25
дададзена
Выдатна. Я выкарыстоўваю <�ўваходных тып = значэнне «кнопка» = «Ачысціць форму» ID = «скід» /> змяніць яго на <�тып ўводу = "Кнопка» значэнне = ID «Ачысціць форму» = "formReset" /> працаваў :)
дададзена аўтар Prabs, крыніца

гэта:

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

works just fine. Watch it here: http://jsfiddle.net/tZ99a/1/

Такім чынам, там павінна быць нешта няправільна або з формай, або з тым, як вы падлучаеце сцэнар да кнопкі.

8
дададзена
Э-э? Ідэнтыфікатар ідзе ў форме, а не ўвод. Я думаю, вы змешвае «форму» і «ўвод» канцэпцыю.
дададзена аўтар Diego Mijelshon, крыніца
Гэта не мае нічога агульнага з ім. См абноўленага скрыпку. Дарэчы, чаму б не апублікаваць адпаведны код там, так што мы можам бачыць, што гэта не атрымаецца? Да гэтага часу мы мяркуем.
дададзена аўтар Diego Mijelshon, крыніца
Дзякуй! Гэта працавала ідэальна.
дададзена аўтар L1ghtk3ira, крыніца
Форма выглядае наступным чынам. <�Код> <�ўваходных тып = "тэкст" ID = «theForm»> Ці будзе той факт, што гэтыя і іншыя формы, усё пад адным тэгам <form> ўплывае на скід?
дададзена аўтар user2426162, крыніца
У мяне ёсць некалькі ўваходаў у рамках аднаго тэга формы. Але па нейкай прычыне, калі я раблю іх усё тэг індывідуальнай формы, то яна працуе вельмі дзіўна.
дададзена аўтар user2426162, крыніца

Памылка выклікана даючы кнопку скіду (або любы іншы элемент формы) скід імя - назва = «скід» . Такім чынам, form.reset вырашае да элемента DOM з кодам <> Name = «скід» , а не метадам скіду.

<�Моцны> ДЭМА З назва = "скід" - праверыць кансоль

<div class="snippet" data-lang="js" data-hide="true"> <div class="snippet-code snippet-currently-hidden">

$(function() {
    $('.reset1').on('click', function() {
        this.form.reset();
    });
  
    $('.reset2').on('click', function() {
        $('form')[0].reset();
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
  <input type="text" name="somename"/>
<input type="button" name="reset" class="reset1" value="Reset - form.reset()"/>
<input type="button" name="reset" class="reset2" value="Reset - $('form')[0].reset()"/> </form>
</div> </div>

<�Моцны> SAME DEMO АЛЕ З назва = "скід" - няма памылак !; код працуе

<div class="snippet" data-lang="js" data-hide="true"> <div class="snippet-code snippet-currently-hidden">

$(function() {
    $('.reset1').on('click', function() {
        this.form.reset();
    });
  
    $('.reset2').on('click', function() {
        $('form')[0].reset();
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
  <input type="text" name="somename"/>
<input type="button" name="someothername" class="reset1" value="Reset - form.reset()"/>
<input type="button" name="someothername" class="reset2" value="Reset - $('form')[0].reset()"/> </form>
</div> </div>

<�Моцны> SAME DEMO АЛЕ З ID = "скід" - праверыць кансоль

<div class="snippet" data-lang="js" data-hide="true"> <div class="snippet-code snippet-currently-hidden">

$(function() {
    $('.reset1').on('click', function() {
        this.form.reset();
    });
  
    $('.reset2').on('click', function() {
        $('form')[0].reset();
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
  <input type="text" name="somename"/>
<input type="button" id="reset" class="reset1" value="Reset - form.reset()"/>
<input type="button" id="reset" class="reset2" value="Reset - $('form')[0].reset()"/> </form>
</div> </div>
3
дададзена
Не магу сказаць, хто ты, і я не, калі вы той жа чалавек, які знаходзіцца на рулоне. <�Б> Калі вы downvote пошты, калі ласка, паказаць прычыну, і асабліва, калі гэта пасля таго, як так доўга! У адваротным выпадку мы маем цяжкі час не думаць, што вы будучы шкоднаснымі. : (
дададзена аўтар PeterKA, крыніца

калі "theForm" гэта ідэнтыфікатар, мы павінны выкарыстоўваць $ ( '# theForm') [0] ? Я лічу, што гэта няправільна звычка. Калі ёсць некалькі формаў у HTML-старонцы, выкарыстоўвайце імёны. А калі вы карыстаецеся ідэнтыфікатар, ён павінен быць унікальным.

Было б вельмі добра, калі вы можаце прадаставіць свой HTML код тут :)

1
дададзена

Праблема, хутчэй за ўсё, што кнопка скіду ідэнтыфікатар формы усталяваны ў становішчы «скід», такім чынам, паведамленне пра памылку.

У мяне была тая ж праблема, а затым, нарэшце, зразумеў, і змяніў маю форму:

    form action="bla" method="post" id="myform">
    ...
    
    /form>

Змена кнопкі скіду ідэнтыфікатара зрабіў трук для мяне.

0
дададзена

Калі ласка, пераканайцеся, што вы не маеце элемента формы з імем «скід». Калі гэта так, перайменаваць яго і метад .RESET() будзе працаваць. У адваротным выпадку document.getElementById ( «FormID»). Скід будзе выбраць элемент формы з імем «перазагрузкай», таму метад скіду() не можа працаваць. Yo атрымае паведамленне пра памылку, як "аб'ект не з'яўляецца функцыяй.

0
дададзена

Так што ... Я думаю, што ёсць некалькі рэчаў адбываецца тут.

  1. Як Дыега ўказаў у сваім адказе, $ ( '# theForm') [0] .RESET() ;. працуе вельмі добра
  2. Другі прыклад вы спрабавалі: document.getElementById (theForm) .RESET (); не будзе працаваць, таму што браўзэр будзе думаць, што вы карыстаецеся зменную «theForm» - калі б гэта было так, то гэтае значэньне павінна быць радок, якая ўяўляе ідэнтыфікатар вашай формы ... нешта накшталт вар theForm = «theForm»; і што можа атрымаць сапраўды заблытаным вельмі хутка. Я падазраю, што ты меў на ўвазе, каб паспрабаваць быў: document.getElementById ( «theForm») скід (); - які працуе без перашкодаў і ў асноўным тое ж самае, што і код з # 1
  3. Гэтыя прыклады усё пры ўмове, што ваш HTML-то накшталт: <�ідэнтыфікатар формы = "theForm"> ... </form> - ідэнтыфікатар "theForm" павінен быць у выглядзе тэга , а не на ўваходных тэг ўнутры формы.

I've created a fiddle that shows these things working: http://jsfiddle.net/boliver/ZDQxE/

0
дададзена