onClientClickはクライアントスクリプトであり、一般にJavaScriptを使用し、クライアントで実行するために使用されます。つまり、クリックしてすぐに実行します。
OnClickは、サーバー側のイベント処理機能であり、C#またはVB.NETを使用してサーバー側、つまりIISで実行されます。ボタンをクリックした後、ポストバックを実行してから実行します。
最初にOnClientClickを呼び出し、OnClickイベントに電話しない場合は、OnClientClickイベントでFalseを返す必要があります。 falseを返さない場合、onclientClickを実行した後、オンクリックイベントを呼び出し続けます!
実装方法は次のとおりです。
<asp:button id = "btn_save" runat = "server" text = "save" cssclass = "button_bak" onclientClick = "return iTempty();" onclick = "btn_save_click"/> // javascriptの実装は次のとおりです。 document.getElementById( "<%= txt_kpiname.clientId%>") document.getElementById( "<%= txt_standard.clientid%>")。value; if(kpiname == "" "&& jobgoal ==" "&& weight ==" "&& stardand ==" "){emptflag = true;} if(a arert(" kpi information can alt fiels! ");onclientClick = "returnempty();" JavaScriptでfalseを返す場合でも、onClickはまだ実行されます!
OnClientClickとOnClickの違いの説明は次のとおりです
実際、クライアントとサーバーの間でデュアル検証が必要な場合があります。なぜそう言うのですか? Biguoは、クライアントにJS検証を渡すと、文字と数字しか入力できず、特別なキャラクターを持つことはできないと言いました!通常、問題はありませんが、人々が「破壊を行う」ためにあらゆる手段を試すことを常に残念に思います。現時点では、二重検証が必要です!率直に言って、それはサーバーとクライアントの両方がチェックされていることを意味します!
たとえば、ボタンにはイベントとonclientClick属性があります。前者は通常、サーバー上のクリックイベントです!後者はクライアントのクリックイベントです!
テストをしましょう!次のコードをdefault.aspxページに追加します!
<スクリプト言語= "javascript" type = "text/javascript"> futtun buttonclick(){alert( "i a a client click event"); return false; } </script>ページコード:
<form id = "form1" runat = "server"> <div> <asp:button id = "button1" runat = "server" text = "onclientClickイベントはデフォルトで使用されます。 /> <asp:label id = "label1" runat = "server" text = ""> </asp:label> </div> </form>
CSファイルコード:
保護されたvoid button1_click(object sender、eventargs e){this.label1.text = "私はサーバークリックイベント";}誰もがそれを実行して、効果が何であるかを確認しますか? JSのコードのみがポップアップすることがわかります!そうです、これはまさに私たちが望む効果です。 falseをreturnを使用して、サーバーの検証を「ブロック」します!利点は何ですか?ページを更新する必要はありません!