jQuery 3.3

.submit()




jquery

.submit (معالج) الإرجاع: jQuery

الوصف: ربط أحد معالجي الأحداث بحدث جافا سكريب "submit" أو تشغيل هذا الحدث على عنصر.

  • الإصدار المضاف: 1.0 .submit (معالج)

    • معالج
      النوع: Function ( Event eventObject)
      هي وظيفة يتم تنفيذها في كل مرة يتم فيها تشغيل الحدث.
  • الإصدار الذي تمت إضافته: 1.4.3 .submit ([eventData] ، معالج)

    • eventData
      النوع: Anything
      كائن يحتوي على بيانات سيتم تمريرها إلى معالج الحدث.
    • معالج
      النوع: Function ( Event eventObject)
      هي وظيفة يتم تنفيذها في كل مرة يتم فيها تشغيل الحدث.
  • الإصدار المضاف: 1.0 .submit()

    • هذا التوقيع لا يقبل أي حجج.

هذه الطريقة هي اختصار لـ .on( "submit", handler ) في التباين الأول ، و .trigger( "submit" ) في الثلث.

يتم submit حدث الإرسال إلى عنصر عندما يحاول المستخدم إرسال نموذج. يمكن إرفاقه فقط بالعناصر <form> . يمكن إرسال النماذج إما عن طريق النقر فوق <input type="submit"> صريح ، أو <input type="image"> ، أو <button type="submit"> ، أو بالضغط على Enter عندما يكون تركيز عناصر معينة في النموذج.

بناءً على المتصفح ، قد يتسبب مفتاح Enter في إرسال النموذج فقط إذا كان للنموذج حقل نصي واحد فقط ، أو فقط عند وجود زر إرسال. يجب ألا تعتمد الواجهة على سلوك معين لهذا المفتاح ما لم يتم فرض المشكلة من خلال مراقبة حدث الضغط لمكابس مفتاح 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( event ) {
  alert( "Handler for .submit() called." );
  event.preventDefault();
});

الآن عندما يتم إرسال النموذج ، يتم تنبيه الرسالة. يحدث هذا قبل التقديم الفعلي ، حتى يمكننا إلغاء إجراء التقديم عن طريق الاتصال .preventDefault() على كائن الحدث أو عن طريق إرجاع false من معالجنا. يمكننا تشغيل الحدث يدويًا عند النقر على عنصر آخر:

$( "#other" ).click(function() {
  $( "#target" ).submit();
});

بعد تنفيذ هذه التعليمة البرمجية ، سيؤدي النقر فوق Trigger the handler إلى عرض الرسالة أيضًا. بالإضافة إلى ذلك ، سيتم إطلاق الإجراء submit الافتراضي في النموذج ، لذلك سيتم إرسال النموذج.

لا يُطلق حدث submit جافا سكريبت في Internet Explorer. ومع ذلك ، ستعمل البرامج النصية التي تعتمد على تفويض الحدث مع حدث الإرسال بشكل ثابت عبر المتصفحات كما في jQuery 1.4 ، مما يؤدي إلى تطبيع سلوك الحدث.

ملاحظات إضافية:

  • نظرًا .submit() طريقة .submit() هي مجرد اختزال لـ .on( "submit", handler ) ، فإن .off( "submit" ) ممكن باستخدام .off( "submit" ) .
  • يجب ألا تستخدم النماذج وعناصرها الفرعية أسماء مدخلات أو معرفات تتعارض مع خصائص النموذج ، مثل submit أو length أو method . يمكن أن تتسبب تعارضات الأسماء في حدوث خلل محير. للحصول على قائمة كاملة بالقواعد DOMLint لهذه المشكلات ، راجع DOMLint .

أمثلة:

إذا كنت ترغب في منع إرسال النماذج ما لم يتم تعيين متغير إشارة ، فحاول:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>submit demo</title>
  <style>
  p {
    margin: 0;
    color: blue;
  }
  div,p {
    margin-left: 10px;
  }
  span {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<p>Type 'correct' to validate.</p>
<form action="javascript:alert( 'success!' );">
  <div>
    <input type="text">
    <input type="submit">
  </div>
</form>
<span></span>
 
<script>
$( "form" ).submit(function( event ) {
  if ( $( "input:first" ).val() === "correct" ) {
    $( "span" ).text( "Validated..." ).show();
    return;
  }
 
  $( "span" ).text( "Not valid!" ).show().fadeOut( 1000 );
  event.preventDefault();
});
</script>
 
</body>
</html>

عرض:

إذا كنت ترغب في منع إرسال النماذج ما لم يتم تعيين متغير إشارة ، فحاول:

$( "form" ).submit(function() {
  return this.some_flag_variable;
});

لتشغيل الحدث "إرسال" في النموذج الأول على الصفحة ، حاول:

$( "form:first" ).submit();