OnclientClick เป็นสคริปต์ไคลเอนต์ซึ่งโดยทั่วไปใช้ในการใช้ JavaScript ทำงานในไคลเอนต์นั่นคือ IE และดำเนินการทันทีหลังจากคลิก
OnClick เป็นฟังก์ชั่นการจัดการเหตุการณ์ฝั่งเซิร์ฟเวอร์ซึ่งใช้ C# หรือ VB.NET เพื่อทำงานบนฝั่งเซิร์ฟเวอร์นั่นคือ IIS หลังจากคลิกปุ่มแล้วให้รันโพสต์แบ็กแล้วเรียกใช้
หากคุณต้องการโทรหา onclientclick ก่อนและอย่าเรียกเหตุการณ์ onclick คุณควรส่งคืนเท็จในเหตุการณ์ onclientclick หากคุณไม่กลับมาเป็นเท็จหลังจากดำเนินการ onclientclick คุณจะยังคงโทรหาเหตุการณ์ onclick ต่อไป!
วิธีการใช้งานมีดังนี้:
<ASP: ปุ่ม ID = "btn_save" runat = "เซิร์ฟเวอร์" text = "บันทึก" cssclass = "button_bak" onclientclick = "return erepempty ();" onclick = "btn_save_click"/> // การใช้งาน JavaScript มีดังนี้: <ภาษาสคริปต์ = "javascript" type = "text/javascript"> ฟังก์ชั่นไม่ว่าจะเป็น () {// alert ("ข้อมูล kpi ไม่ว่างทั้งหมด!"); document.getElementById ("<%= txt_kpiname.clientid%>"). ค่า; var jobgoal = document.getElementById ("<%= txt_jobgoal.clientid%>") ค่า var = document.getElementById (" document.getElementById ("<%= txt_standard.clientid%>"). ค่า; ถ้า (kpiname == "" && jobgoal == "" && weight == "" && standard == "") {emptflag = true;ถ้า onclientClick = "return erepempty ();" ไม่มีการส่งคืนแม้ว่าจะส่งคืน False ใน JavaScript, OnClick จะยังคงดำเนินการ!
นี่คือคำอธิบายของความแตกต่างระหว่าง onclientclick และ onclick
ในความเป็นจริงบางครั้งจำเป็นต้องมีการตรวจสอบคู่ระหว่างไคลเอนต์และเซิร์ฟเวอร์ ทำไมคุณถึงพูดอย่างนั้น? Biguo กล่าวว่าเมื่อเราผ่านการตรวจสอบ JS กับลูกค้าเราสามารถป้อนตัวอักษรและตัวเลขเท่านั้นและเราไม่สามารถมีตัวละครพิเศษได้! โดยปกติแล้วจะไม่มีปัญหา แต่มีความอัปยศเสมอที่ผู้คนพยายามทุกวิถีทางในการ "ทำลายล้าง" และในเวลานี้จำเป็นต้องมีการตรวจสอบสองครั้ง! เพื่อให้มันตรงไปตรงมาหมายความว่าทั้งเซิร์ฟเวอร์และไคลเอนต์ได้รับการตรวจสอบ!
ตัวอย่างเช่น: ปุ่มมี: onclick event และ onclientclick แอตทริบิวต์, อดีตโดยทั่วไปคือเหตุการณ์คลิกบนเซิร์ฟเวอร์! หลังเป็นเหตุการณ์คลิกบนไคลเอนต์!
มาทดสอบกันเถอะ! เพิ่มรหัสต่อไปนี้ในหน้า default.aspx!
<script language = "javascript" type = "text/javascript"> function buttonclick () {alert ("ฉันเป็นเหตุการณ์คลิกไคลเอนต์"); return false; } </script>รหัสหน้า:
<form id = "form1" runat = "เซิร์ฟเวอร์"> <div> <asp: button id = "button1" runat = "เซิร์ฟเวอร์" ข้อความ = "ปุ่มบางปุ่มเป็นตัวควบคุมเซิร์ฟเวอร์และเหตุการณ์ onclientclick ถูกใช้โดยค่าเริ่มต้นโปรดปิดการใช้งานฟังก์ชั่น JS ของเบราว์เซอร์ /> <asp: label id = "label1" runat = "เซิร์ฟเวอร์" text = ""> </asp: label> </div> </form>
รหัสไฟล์ CS:
Void button1_click (ผู้ส่งวัตถุ, EventArgs e) {this.label1.text = "ฉันเป็นเซิร์ฟเวอร์คลิกเหตุการณ์";}ทุกคนเรียกใช้และดูว่าเอฟเฟกต์คืออะไร? คุณอาจพบว่ามีเพียงรหัสใน JS ที่ปรากฏขึ้น! ถูกต้องนี่คือเอฟเฟกต์ที่เราต้องการ ใช้ return false to "block" การตรวจสอบของเซิร์ฟเวอร์! ประโยชน์คืออะไร? คุณไม่จำเป็นต้องรีเฟรชหน้า!