الضغط على enter داخل مربع نص لا النار حدث onclick زر إرسال في فايرفوكس

StackOverflow https://stackoverflow.com/questions/1642815

سؤال

لدي هذه صفحة html وهو بسيط جدا, أنه يحتوي على مربع نص على زر إرسال, ما اريده هو عند كتابة شيء ما في مربع النص ثم الضغط على enter الدالة في الحدث onclick لزر يحصل تسمى.إنه يعمل في IE و جوجل كروم ولكن لا يعمل في فايرفوكس, هل هذا هو السلوك العادي فايرفوكس أو هناك شيء أنا في عداد المفقودين هنا ؟

<html>
<head>
<script language="javascript">
function callMe()
{
   alert("You entered: " + document.getElementById("txt").value);
}
</script>
</head>
<body>
<input type="text" id="txt" />
<input type="submit" value="Submit" onclick="callMe()" />
</body>
</html>
هل كانت مفيدة؟

المحلول

من وصف onclick الحدث:

على onclick الحدث يحدث عند التأشير على زر جهاز النقر فوق عنصر.هذه السمة يمكن استخدامها مع معظم العناصر.

ليس هناك ما يضمن أن هناك UA ينبغي أن تولد مثل هذا الحدث حتى عندما لا باستخدام جهاز التأشير والنقر شيء.

ربما كنت تريد onsubmit الحدث على شكل:

على onsubmit الحدث يحدث عند إرسال النموذج.فإنه ينطبق فقط على FORM العنصر.

سوف تحتاج إلى التفاف شكل حول حقل نص و زر ، على الرغم من:

<html>
  <head>
    <script language="javascript">
      function callMe()
      {
        alert("You entered: " + document.getElementById("txt").value);
      }
    </script>
  </head>
  <body>
    <form onsubmit="callMe()" action="#">
      <input type="text" id="txt" />
      <input type="submit" value="Submit" />
    </form>
  </body>
</html>

نصائح أخرى

وحاول إضافة شكل مع onsubmit - وهذا يجب أن تعمل (اختبار مع FF 3.5):

<html>
<head>
<script language="javascript">
function callMe()
{
   alert("You entered: " + document.getElementById("txt").value);
}
</script>
</head>
<body>
<form onsubmit="callMe()">
<input type="text" id="txt" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

[عدل في البداية كنت يساء فهم الوضع ونشر إجابة مختلفة.]

ولا يعمل في كروم بالنسبة لي سواء (4.0.223.11).

والمشكلة هي الفرق في علاج <الإدخال> الصورة بدون <النموذج> - إذا قمت بإضافة إرفاق

عنصر وحرائق عنصر عند _ النقر (يجب عليك الاستمرار في استخدام النموذج يقدم معالج بدلا من ذلك، كما يوهانس روسل بحق توصي.

[عدل بإضافة مذكرة حول HTML5]

لاحظ أن <لأ href = "http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#implicit-submission" يختلط = "نوفولو noreferrer"> HTML5 المواصفات يذكر إيفاد الحدث انقر على زر تقديم :

<اقتباس فقرة> وكلاء العضو قد وضع زر في كل نموذج بأنها الزر الافتراضي للنموذج. هذا ينبغي أن يكون على زر أولا من أجل شجرة الذي هو عنصر النموذج صاحب النموذج، ولكن وكلاء المستخدم قد اختيار زر آخر إذا آخر سيكون أكثر ملاءمة للمنصة. إذا كانت منصة تدعم السماح للمستخدم تقديم استمارة ضمنيا (على سبيل المثال، على بعض الأنظمة الأساسية ضرب "دخول" مفتاح بينما تركز حقل النص ضمنا يقدم النموذج)، ثم القيام بذلك يجب أن يسبب السلوك تنشيط الزر الافتراضي للنموذج، إن وجدت ، ليتم تشغيلها.

ملحوظة أن تنفيذ تنشيط أدخل على أساس غير مطلوب (على الرغم من أنها تنفذ في متصفحات سطح المكتب)، و "طريقة تفعيل" (انقر الحدث) يمكن استخدامها عند المدخل هو جزء من نموذج ( "لديها صاحب النموذج "). ويستند تعريف "مالك النموذج" على وجود <النموذج> الوالدين أو سمة form.

وأنا لا أرى المناقشة التي أدت إلى هذا القرار، لذلك إذا كان لديك أسئلة، يمكنك أن تسأل عن قائمة بريدية-أتش تي أم أل العامة التي تناقش فيها المواصفات.

وبقدر ما أعرف، لا يمكنك استدعاء "عند_النقر" داخل "مربع نص". يجب أن يكون خارج مربع نص.

إذا قمت بكتابة النص في مربع نص الماوس الأيسر فوق مكان آخر على الصفحة الخاصة بك، ثم اضغط Enter، سوف الحدث OnClick العمل، ومن الغريب.

وإذا وجدت عمل حول واسمحوا لنا أن نعرف.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top