Struts2 นั้นมีกลไกการตรวจสอบสำหรับการส่งซ้ำ แต่สิ่งที่ฉันต้องการคือไม่ต้องแสดงหน้าข้อผิดพลาด แต่ให้ถือว่ามันไม่มีอะไรเกิดขึ้นและดำเนินการส่งเพียงครั้งเดียว
1. ตั้งค่าตัวแปร ตั้งค่าตัวแปร และอนุญาตเพียงหนึ่งรายการเท่านั้น การส่ง
<script type="text/javascript">
ฟังก์ชั่นตรวจสอบส่ง () {
ถ้า (checkSubmitFlg == จริง) {
กลับเท็จ;
-
checkSubmitFlg = จริง;
กลับเป็นจริง;
-
</script>
<form onsubmit="return checkSubmit();" method="post">
วิธีที่ 1 มีผลกับ IE6 และ FIREFOX
2. ปิดการใช้งานปุ่ม เนื่องจากเซิร์ฟเวอร์ของเราช้าเกินไป ปุ่มจึงกลายเป็นสีเทา ทำให้ผู้ใช้ ประสบการณ์ที่ดีกว่า
<script type="text/javascript">
ฟังก์ชั่นปิดการใช้งานส่ง (แบบฟอร์ม) {
องค์ประกอบ var = form.elements;
สำหรับ (var i = 0; i < element.length; i++) {
ถ้า (องค์ประกอบ [i] .type == 'ส่ง') {
องค์ประกอบ [i] .disabled = จริง;
-
-
-
</script>
<form name="form1" onsubmit="setTimeout('disableSubmit(form1)',100) return checkSubmit();" method="post">
หากคุณปิดการใช้งานทันที การตั้งค่าการกระทำแต่ละปุ่ม จะใช้งานไม่ได้ ดังนั้นวิธีที่ 2 ในการเพิ่มการหน่วงเวลาจึงใช้ได้ใน IE6 ไม่ถูกต้องบน FIREFOX ไม่ทราบสาเหตุ แต่ยังไงซะมันก็เป็นการประกันครั้งที่สอง ดังนั้นมันจึงไม่สำคัญ
บทความอ้างอิง
http://blog.csdn.net/LoveYou1999/archive/2007/02/02/1501295.aspx
http://www.takka.com.hk/jstutor/ch10/ch10.htm