მრავალჯერადი წარდგენა ფორმისთვის. Obbluvach ან dzherelo podіi წარადგინოს Kіlka წარადგინოს შუა ერთი ფორმა

დააკლიკეთ გაგზავნის მეთოდს() ფორმი Არ უდრისრედაქტირების ღილაკზე დაჭერით. ამ მეთოდით დადგინდება სამი მოქმედების ზედაზღვევის მხოლოდ მესამედი - ხარკის გადაცემასერვერზე. ვინც არ არის დამნაშავე კოლექციონერის ვიკის შექმნაში onClickღილაკების გაგზავნა, სავსებით გასაგებია - ჩვენ ასევე მოგიწოდებთ გამოაგზავნოთ მონაცემები გაგზავნის ღილაკის გვერდის ავლით (რაც, მეტყველების თვალსაზრისით, შეიძლება იყოს ან საერთოდ არ იყოს საჭირო). Ale და ხელმოწერა onSubmit ფორმაში არ დარეკო- ეს მდიდრებისთვის და დაუცველებისთვისაა. ჩვენ არ ვიმსჯელებთ, რამდენად სრულიად ლოგიკურია (და რატომ განსხვავდება ეს ქცევა მეთოდის ქცევისგან) გადატვირთვა(), დივ. ქვემოთ), მაგრამ უბრალოდ ასახავს ამ ეფექტს წინა კონდახში შეტყობინების ჩასმით, რომელიც გამოიძახის მეთოდს წარადგინოს():

wikiCati მეთოდი წარდგენა ()ფორმიანი

5.8. Submit() მეთოდი არ იძახებს onSubmit გამომგზავნს

თავად მონაცემები შეიძლება გაიგზავნოს სერვერზე JavaScript სკრიპტის მიერ წინასწარ შემოწმების გარეშე. როგორ მუშაობს WikiCity ბრაუზერი გაგზავნაზე? რისთვისაც შესაძლებელია ამ პუნქტამდე გასვლა შუაში: document.f.onsubmit(). აკრძალულია შემდეგი მეთოდის გადატანა წარადგინოს() ის დამნაშავეა არა პირველ რიგში, არამედ მხოლოდ იმ შემთხვევაში, თუ onSubmit ან რაიმე მნიშვნელობის გადაქცევის გარეშე, ან გახდება true, სხვა სიტყვებით რომ ვთქვათ, თუ არ ხდება false. დანარჩენი შეგვიძლია წავიღოთ:

ვიკლიკატი წარდგენა ()პირველი შემოწმებით Submit-ზე

5.9. Primus viklik onSubmit ადრე გაგზავნამდე()

ინიცირების კიდევ ერთი გზა მონაცემების გაგზავნაფორმები, რომლებიც გვერდის ავლით გაგზავნის ღილაკს (რომელიც, მართალი გითხრათ, ფორმას შეიძლება არ ჰქონდეს). არის თუ არა აქცენტი ტექსტის რომელიმე ველზე ჩამოაყალიბეთ და დააჭირეთ Enter ღილაკს, შემდეგ (ბრაუზერების უმეტესობაში) მოგეთხოვებათ დააწკაპუნოთ ფორმის გაგზავნა და ხარკის გადაცემასერვერზე.

შეიყვანეთ ტექსტი და დააჭირეთ Enter:

5.10. ფორმის მონაცემების გაგზავნა Enter ღილაკის დაჭერით

ეს მეთოდი უფრო ლოგიკურად მუშაობს, ვიდრე სხვა მეთოდი. წარადგინოს(), ვინაიდან სერვერზე გაგზავნილი მონაცემები არ ექვემდებარება წინა გადამოწმებას onSubmit-ის მიერ.

გადატვირთვის ღილაკი

ფასდაკლების ღილაკი (გადატვირთვა) გაძლევთ საშუალებას შეატრიალოთ ყველა ფორმის ველი პირველ პოზიციაზე, რადგან ის არ მუშაობს გვერდის გადიდებისას. გაუქმების ღილაკზე დაჭერით მიგიყვანთ ბრაუზერის მოქმედებების შემდეგ თანმიმდევრობამდე:

1. იდეების კრებულის ვიკლიკი onClickამ ღილაკზე;

2. დააწკაპუნეთ ფორმის onReset ღილაკზე;

3. განახლებული მნიშვნელობები ფორმის ყველა ველისთვის.

გადადით დაწკაპუნების მეთოდზე() გაუქმების ღილაკზე, დააჭირეთ ღილაკს თანაბრად ძლიერად, რომ შეასრულოთ იგივე სამი მოქმედება:

wikiCati მეთოდი დააჭირეთ ()ფასდაკლების ღილაკები

5.11. გადადით ფასდაკლების ღილაკის click() მეთოდზე

Є ფორმის ჩაგდების გზები კობის წისქვილიგაუქმების ღილაკის გვერდის ავლით (რომელიც ფორმას შეიძლება ჰქონდეს ან არ ჰქონდეს). პირველ რიგში, ეს არის ის viklik გადატვირთვის მეთოდზე() ფორმაში. ალტერნატიულად, თუ ფოკუსირებულია ფორმის რომელიმე ველზე ან ღილაკზე, შეგიძლიათ დააჭიროთ Esc ღილაკს. კონდახი:

შეცვალეთ ტექსტი და შემდეგ დააჭირეთ Esc-ს (ან გაგზავნას).

wikiCati მეთოდი გადატვირთვა ()ფორმიანი

5.12. ჩამოაგდეთ ფორმა Esc ღილაკის დაჭერით

როგორ შეგიძლიათ ამის გაკეთება ორი განსხვავებული გზით, არა მხოლოდ ფორმის გადატვირთვის, არამედ onReset ფორმის ვარიანტის დაჭერით. ამ გზით, მეთოდი გადატვირთვა() ეს უფრო ლოგიკურია და გადამზადებული, ქვედა წარადგინოს().

გრაფიკული ღილაკი

გრაფიკული ღილაკი- ეს არის სხვა ტიპის რედაქტირების ღილაკი. საქმე იმაშია, რომ ღილაკის ნაცვლად წარწერით „coristuvach“ შეგიძლიათ ნახოთ სურათი, რომელზეც შეგიძლიათ დააჭიროთ:

გარდა ამისა, თუ კორისტუვაჩ დაწკაპუნებებიგრაფიკული ღილაკით, შემდეგ სერვერზე იგზავნება არა მხოლოდ ფორმის ველებში შეყვანილი მონაცემები, არამედ გამოსახულების ზედა მარცხენა კუთხეში მდებარე მაუსის ინდიკატორის კოორდინატები. სამწუხაროდ, JavaScript პროგრამაში ამ კოორდინატებზე ნავიგაცია შეუძლებელია. თუ ამ კოორდინატებთან მუშაობა გჭირდებათ, მაშინ გრაფიკული ღილაკის ნაცვლად, რეკომენდებულია აქტიური რუქის შექმნა დამატებითი კონტეინერის მიღმა. .

გრაფიკულ ღილაკებს აქვთ რამდენიმე ფუნქცია. მაგალითად, როგორც ღილაკიც და სურათებიც, ყოველდღე ისეთი სუნი მაქვს, როგორც document.f კოლექციაში. ელემენტები, ასე რომ, document.images კოლექციაში (IE 7, Mozilla Firefox). შედეგად, სუნი არ შედის ფორმის ელემენტების მთლიანობაში (document.f. სიგრძე), არავითარ შემთხვევაში არ არის დოკუმენტის სურათი (document.images. სიგრძე).

როგორ შეიძლება გაბრაზდეს ასეთ ღილაკზე? ეს შეიძლება გაკეთდეს, მაგალითად, ID ატრიბუტის დაყენებით:

შემდეგ კი პროგრამაში დავწერეთ: var button = document. getElementById("D1"). რის შემდეგაც შეგვიძლია მივმართოთ ამ ღილაკის ავტორიტეტებს, მაგალითად knopka.src, ასევე knopka მეთოდს. დააწკაპუნეთ(). შემტევი კონდახი გვიჩვენებს რა დაწკაპუნების მეთოდი დააწკაპუნეთ() გრაფიკული ღილაკი "მაჟორი" იგივე ღილაკზე დაჭერის ტოლია, რათა აბონენტებს თანმიმდევრულად დააწკაპუნოთ onClickღილაკები, onSubmit აყალიბებს და გადასცემს მონაცემებს სერვერზე (კიდევ რა არის გადაცემული მაუსის კურსორის კოორდინატებში?):

wikiCati მეთოდი დააჭირეთ ()გრაფიკული ღილაკი

5.13. დააწკაპუნეთ click() მეთოდზე გრაფიკულ ღილაკზე

გრაფიკული ღილაკების ფრაგმენტები იშვიათად გამოიყენება, იმისდა მიხედვით, თუ რას განვიხილავთ.

სანამ "onSubmit" ჩამოაყალიბეთ სტანდარტული ფუნქცია addHandler / addEvent ( ძირითადი ფუნქციები) „ასოცირებულია“ ფუნქციის შემგროვებელთან.
ასე რომ, ღერძზე, სადაც ფორმის გაგზავნა გააქტიურებულია შეყვანის დაწკაპუნების შემდეგ, დაწკაპუნებულია ნიმუშის ფუნქციაზე,
თუ ეს არის form.submit(), მაშინ ის არ მუშაობს.
რატომ? როგორ გავასწორო?

თქვენ მიდიხართ გზაზე, შემდეგ ბუმი, "წითელი შუქი" (Submit-ზე), მაგრამ ის მოდის! კარგად, ბუნებრივად აიღებ მას - ჭედურობაზე (ფორმა. წარადგინე ()), მიდიხარ უფრო შორს და შემდეგ ოპ, ბობი ხტება, ისევ გადიხარ გალმზე, მაგრამ წითელი შუქი არ ჩანს. რატომ?
როგორ გამოვასწოროთ - იფიქრეთ იმაზე, თუ როგორ მუშაობს ბრაუზერი, ის მუშაობს ისე, როგორც თქვენ გსურთ და არა ისე, როგორც თქვენ გსურთ. onSubmit - form, form.submit () - უბრალოდ დაბალი დონის წყარო, რომელიც განიხილება თავად ბრაუზერის მიერ და საჭიროების შემთხვევაში ხელმისაწვდომია პროგრამისთვის. რატომ წამოვიწყო ეს იდეა? ასე რომ, შორს არ არის ჩამოკიდებისგან. ერთი მარჯვნივ არის ამაზე ფიქრი, მეორე კი მოკვდება. იდეის / აზროვნების / იდეისა და მეთოდის სემპლერი / პედალი / ინსტრუმენტი - სხვადასხვა სიტყვები. არ არის საჭირო წიგნის დაკიდება მეთოდზე, ეს არის შუქურა. უმარტივესი გზით, დააწკაპუნეთ წარმგზავნის ფუნქციაზე, სანამ დააწკაპუნეთ form.submit().

და სანამ ყიდულობთ.. ფუნქცია დოკუმენტირებულია. MSDN:

FORM.submit()
გაგზავნის მეთოდი არ იწვევს onsubmit მოვლენის დამმუშავებელს. პირდაპირ დაურეკეთ onsubmit ღონისძიების დამმუშავებელს. Microsoft-ის გამოყენებისას Internet Explorer 5.5 და შემდეგ, შეგიძლიათ გამოძახოთ fireEvent მეთოდი onsubmit მნიშვნელობით sEvent პარამეტრში.

თუ კორისტუვაჩი დააჭერს შეყვანას, გამოდით ახლა კშტალტზე

თუ (form.onSubmit()) form.submit();

ისევ იმუშავე.
თუ form.submit() დააჭერს form.onSubmit() მაშინ მიიღებთ რეკურსიას.
ამის გამოსასწორებლად, თქვენ უნდა გამოიყენოთ "სტანდარტული addHandler / addEvent ფუნქციის" გაფართოებული ვერსია, რომელიც საშუალებას გაძლევთ დაიწყოთ მოვლენები. IE-ში ეს აბსოლუტურად შესაძლებელია და არაფრის გარეშე - ჩვენ ვიყურებით fireEvent-ისკენ. FF-ით ასევე შესაძლებელია მსგავსი ან უფრო რთული რამის გაკეთება.

ქორთიარდ რომანი [დოსიე], უფრო უნივერსალურად - ასე:
if (form.onsubmit()!=false) form.submit();
იმიტომ, რომ, პირველ რიგში, JavaScript არის რეგისტრისადმი მგრძნობიარე (თქვენ არ შეგიძლიათ დაწეროთ form.onSubmit), წინააღმდეგ შემთხვევაში, მონაცემთა გაგზავნა სერვერზე არა მხოლოდ აუცილებელია, თუ onsubmit () დაყენებულია true, არამედ თუ ის არ დაბრუნდა. არაფერი (მაგალითად, როგორც obobnik-ში onsubmit varto just alert, და koristuvach-მა დაიწყო ამ ობობნიკში რაიმე მოქმედების განხორციელების გარეშე).

Thirteensmay [დოსიე], რა თქმა უნდა, წითელ შუქთან, პედლთან და ბობისთან გასწორება ლამაზია! :) სამწუხაროდ, მე არ ავხსნი ამ ფენომენს. რადგან თანაბარ სამყაროში არის რამდენიმე მაგალითი და მეთოდი, რომელთა თავიდან აცილებაც შეუძლებელია. ნება მომეცით უფრო ზუსტად ჩამოვაყალიბო, რადგან დავკარგეთ ყურადღება კვებაზე:

დაწკაპუნება () hyperpower - დააწკაპუნეთ onClick კოლექტორიეს არის ის, რაც ჩვენ გავგზავნეთ
- ფორმის BE ღილაკის დაჭერით () მეთოდი - გაიყვანეთ ღილაკზე onClick-ის დაწკაპუნება
- reset() მეთოდი ფორმისთვის - მიჰყევით onReset-ის ვიკლიკს ფორმისთვის
- ALE მეთოდი გაგზავნა () ფორმაში - არ გადაათრიოთ onSubmit კოლექციონერის ვიკლიკი ფორმაზე!

რა მიზეზები შეიძლება არსებობდეს (ენის ან ბრაუზერის დეველოპერებისთვის?) ასეთი განსხვავებული გზებით მუშაობისთვის?

აინსტალირებს ფორმის წარდგენის ხელსაწყოს სერვერზე ან იწყებს ამ პროცესს. მეთოდს აქვს სამი ვარიანტი:

დამმუშავებელი (eventObject)- ფუნქცია, რომელიც დაინსტალირდება სემპლერის ყუთში. როდესაც დააწკაპუნებთ, ქვემოთ მოცემული ობიექტი შეირჩევა მოვლენის ობიექტი .

დამმუშავებელი (eventObject)- დივ. მეტი
მოვლენის მონაცემები- დამატებითი მონაცემები, რომლებიც გადაეცემა კოლექციას. დამნაშავე წარმოდგენილი იქნება ობიექტით ფორმატში: (fName1: value1, fName2: value2, ...).

შეგიძლიათ მიიღოთ ჩასმის სია unbind() მეთოდის გამოყენებით.

შემცვლელი მეთოდის სამივე ვარიანტი, სხვა მეთოდების ანალოგების ჩათვლით (დივ. მეტი), ამიტომ შემცვლელის წარდგენის ყველა დეტალი () შეგიძლიათ იხილოთ ამ მეთოდების აღწერილობაში.

გაგზავნის ღილაკი მოთხოვნილია ფორმის სერვერზე გაგზავნამდე, და ფორმის გაგზავნა შეიძლება მოხდეს ფორმაში eventObject.preventDefault() მეთოდის გამოძახებით ან უბრალოდ false-ის დაბრუნებით.

IE-ში, გაგზავნის ღილაკს ადმინისტრატორისთვის, სხვა მოთხოვნებთან შედარებით, არ აქვს „იერარქიის გაერთიანების“ ძალა. თუმცა, jQuery-1.4-დან დაწყებული, ეს ხარვეზი აღმოფხვრილია და წარადგინეთ დამმუშავებლები, რომლებიც დამონტაჟებულია ელემენტებზე, რომლებიც დევს იერარქიაში ფორმის ელემენტის ზემოთ, ეცნობებათ იმის შესახებ, რომ მონაცემები არ გაიგზავნება სერვერზე.

კონდახი

// დააინსტალირეთ გაგზავნის ქვედანაყოფი ელემენტისთვის foo იდენტიფიკატორით, // რის შემდეგაც ჩვენ ხელს უშლის სერვერზე მონაცემების გაგზავნას$("#Foo").submit(function()(alert( "Form foo გაგზავნილია სერვერზე."); დაბრუნება false; )); // ზარის გაგზავნა ელემენტზე foo$("#foo").submit(); // ჩასვით სხვა სემპლერი წარდგენის ქვეშ, ამჯერად ელემენტებისთვის // ბლოკის კლასით. კოლექციას წარედგინა დამატებითი მონაცემები$(".Block").submit((a: 12, b: "abc"), ფუნქცია (eventObject) (var externalData = "a =" + eventObject.data .a + ", b =" + eventObject.data .ბ; გაფრთხილება ( "Form foo გაგზავნილია სერვერზე."+ "ამ მონაცემთა გადაცემის წიგნში:"+ გარე მონაცემები); ));

Submit () - დააინსტალირებს ფორმის წარდგენის ფორმას სერვერზე, ან იწყებს ამ პროცესს.

მეთოდს აქვს სამი ვარიაცია.

გაგზავნა (დამმუშავებელი)

  • მოვლენის მონაცემები- მონაცემთა შენახვის ობიექტი ოპერატორზე გადასაცემად. გადასახადები წარმოდგენილია ფორმატში (fName1: value1, fName2: value2, ...);
  • დამმუშავებელი- ფუნქცია, რომელიც დაინსტალირდება სემპლერის ყუთში.

გაგზავნა ()

გაგზავნის ღილაკი დააჭერს არჩეულ გვერდის ელემენტებს.

პირველ ორ ვარიანტში მეთოდი არის analogue.on ("submit", handler), ხოლო მესამე ვარიანტში analogue.trigger ("submit").

გაგზავნის ღილაკი მოთხოვნილია ფორმის სერვერზე გაგზავნამდე, და ფორმის გაგზავნა შეიძლება მოხდეს ფორმაში eventObject.preventDefault() მეთოდის გამოძახებით ან უბრალოდ false-ის დაბრუნებით. გაგზავნის ფუნქცია შეიძლება იყოს მიბმული მხოლოდ ფორმის ელემენტთან.

ფორმები შეიძლება იყოს მიმართული ან აშკარა ზეწოლის ქვეშ , , ან