วันนี้ เมื่อส่งออก Excel ฉันใช้อินพุตที่ซ่อนอยู่ในแบบฟอร์มเพื่อแยกความแตกต่างระหว่างการส่งออกและการค้นหา ในตอนแรก ชื่อฟังก์ชันของเหตุการณ์ onClick ใน js จะเหมือนกับชื่อ id ที่ซ่อนอยู่ เป็นผลให้มีการรายงานข้อผิดพลาด: วัตถุในบรรทัดที่เรียกใช้ฟังก์ชันไม่สนับสนุนแอตทริบิวต์นี้
หลังจากค้นหาอยู่นานก็หาสาเหตุไม่ได้ ตอนแรกนึกว่าพิมพ์ผิด แต่กลับพบว่าฟังก์ชัน js ไม่ได้ถูกดำเนินการเลย ต่อมาฉันไม่สามารถเรียกใช้ฟังก์ชันอื่นได้โดยตรง และพบว่ามันใช้งานได้ ฉันคิดว่าเป็นเพราะชื่อฟังก์ชัน ดังนั้นฉันจึงเปลี่ยนชื่อฟังก์ชันก่อนที่จะใช้งานได้ จากนั้นฉันเปลี่ยน id ในอินพุตให้เหมือนกับชื่อฟังก์ชัน และเกิดข้อผิดพลาดอื่นขึ้น ก่อนที่จะตรวจสอบด้วยตัวอย่างต่อไปนี้ ฉันคิดเสมอว่ามันเป็นข้อบกพร่องในการแยกวิเคราะห์เทมเพลต ThinkPHP จากตัวอย่างต่อไปนี้ จึงได้รับการยืนยันว่าชื่อฟังก์ชันใน js ต้องไม่เหมือนกับ id ในองค์ประกอบ
ตัวอย่างเช่น:
คัดลอกรหัสรหัสดังต่อไปนี้:
<html>
<หัว>
<meta http-equiv="ประเภทเนื้อหา" content="text/html;charset=utf-8" />
<title>เซชิ</title>
<สคริปต์>
ฟังก์ชันก()
-
document.getElementById('a').value="test";
alert(document.getElementById('a').value);
กลับเท็จ;
-
</สคริปต์>
</หัว>
<ร่างกาย>
<แบบฟอร์ม>
<input type="hidden" id="a" name="a" value="" />
<input type="button" value="excel" onClick="javascript:a();"/>
</แบบฟอร์ม>
</ร่างกาย>
</html>
รายละเอียดข้อผิดพลาดของเว็บ
ตัวแทนผู้ใช้: Mozilla/4.0 (เข้ากันได้; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727)
ประทับเวลา: วันพฤหัสบดีที่ 27 มกราคม 2554 เวลา 13:30:09 น. UTC
ข้อความ: วัตถุไม่สนับสนุนคุณสมบัติหรือวิธีการนี้
แถว: 17
ตัวละคร: 1
รหัส: 0
URI: ไฟล์:///C:/Documents%20and%20Settings/Administrator/Desktop/test.html