يوفر Struts2 نفسه آلية فحص لعمليات الإرسال المتكررة، ولكن ما أريده ليس إظهار صفحة خطأ، ولكن التعامل معها كما لو لم يحدث شيء وإجراء إرسال واحد فقط
1. قم بتعيين متغير، وتعيين متغير، والسماح بمتغير واحد فقط استسلام.
<نوع البرنامج النصي = "نص/جافا سكريبت">
وظيفة التحقق من الإرسال () {
إذا (checkSubmitFlg == صحيح) {
عودة كاذبة.
}
checkSubmitFlg = true;
عودة صحيحة؛
}
</script>
<form onsubmit="return checkSubmit();" style="post">
الطريقة الأولى فعالة على IE6 وFIREFOX
2. قم بتعطيل الزر نظرًا لأن خادمنا بطيء جدًا، فسيصبح الزر رماديًا تجربة أفضل
<script type="text/javascript">
وظيفة تعطيل الإرسال (النموذج) {
عناصر فار =form.elements;
لـ (var i = 0; i < Elements.length; i++) {
إذا (العناصر[i].type == 'إرسال') {
العناصر[i].disabled = true;
}
}
}
</script>
<form name="form1" onsubmit="setTimeout('disableSubmit(form1)',100) return checkSubmit();"method="post">
إذا قمت بتعطيله على الفور، فسيتم ضبط إعدادات الإجراء الفردية للزر سيصبح غير صالح، لذا فإن الطريقة الثانية لإضافة تأخير صالحة في IE6. غير صالح على فايرفوكس، السبب غير معروف. لكنه التأمين الثاني على أي حال، لذلك لا يهم.
مقالة مرجعية
http://blog.csdn.net/LoveYou1999/archive/2007/02/02/1501295.aspx
http://www.takka.com.hk/jstutor/ch10/ch10.htm