תיאור:
מקשר מטפל אירוע לאירוע "submit" JavaScript, או מפעיל אירוע הזה על אלמנט.
.submit( handler(eventObject) )
.submit( )
.submit( [ eventData ], handler(eventObject) )
שיטה הזו היא קיצור של
.bind('submit', handler)
בוריאציה הראשונה, ו- .trigger('submit')
בשניה.
אירוע submit
נשלח לאלמנט, כאשר משתמש מנסה לשלוח טופס.
אירוע הזה יכול להיות מקושר רק לאלמנטים
<form>.
טפסים ניתן לשלוח או על ידי לחיצה מפורשת של
<input type="submit">, <input type="image">, או <button type="submit">,
או על ידי לחיצה על
Enter,
כאשר אלמנט מסוים של טופס מקבל פוקוס.
תלוי מדפדפן, רק כפתור "Enter" יכול לגרום לשליחת טופס, אם לטופס יש שדה טקסט אחד, או רק כאשר בטופס נמצאה כפתור שליחה. ממשק לא צריך להסתמך על התנהגות מסוימת של כפתור הזה, אלא אם כן שליחה היא מאלצת, תתבוננו על אירוע
keypressעבור לחיצה על מקש Enter.
לדוגמא, נתבונן על HTML:
<form id="target" action="destination.html"> <input type="text" value="Hello there" /> <input type="submit" value="Go" /> </form> <div id="other"> Trigger the handler </div>
מטפל אירוע יכול להיות מחובר לטופס:
$('#target').submit(function() {
alert('Handler for .submit() called.');
return false;
});
עכשיו, כאשר טופס נשלח, תוצג הודעה.
זה קורה לפני שליחה בפועל, לכן אנחנו יכולים לבטל פעולת שליחה באמצעות הפעלה
.preventDefault()
על אובייקט אירוע או באמצעות החזרת
false
ממטפל.
אנחנו יכולים להפעיל אירוע ידנית, כאשר אלמנט אחר נלחץ:
$('#other').click(function() {
$('#target').submit();
});
אחרי הפעלת קוד הזה, לחיצה על Trigger the handler
גם תציג הודעה.
בנוסף, אירוע על טופס בברירת מחדל
submit
יופעל,
לכן טופס ישלח.
אירוע
JavaScript submit
אינו בועה ב-
Internet Explorer.
עם זאת, סקריפטים, שמבוססים על אירוע משלחת עם אירוע
submit
עובדים באופן עקבי על פני דפדפנים רק החל מ-
jQuery 1.4,
שמנרמל התנהגות של האירוע.
דוגמאות
דוגמה 1
כדי למנוע שליחת טופס, אם לא צוין ערך הנדרש, נסו:דוגמא 1 - קוד מלא:
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript" language="javascript"> $(document).ready(function(){ $("form").submit(function() { if ($("input:first").val() == "correct") { $("span").text("Validated...").show(); return true; } $("span").text("Not valid!").show().fadeOut(1000); return false; }); }); </script> <style> p { margin:0; color:blue; } div,p { margin-left:10px; } span { color:red; } </style> </head> <body> <p>Type 'correct' to validate.</p> <form action="javascript:alert('success!');"> <div> <input type="text" /> <input type="submit" /> </div> </form> <span></span> </body> </html>
דוגמה 2
כדי למנוע שליחת טופס, עד שלא צוין ערך הנדרש כל שהוא, נסו:$("form").submit( function () {
return this.some_flag_variable;
} );
דוגמא 3
כדי להפעיל אירוע submit עבור טופס ראשון בדף, נסו:$("form:first").submit();

