亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

驗證控件與Button的OnClientClick事件詳細解析

2019-11-20 21:31:45
字體:
來源:轉載
供稿:網友

一、事件

這是一個長期被我忽略或者是沒有發現的問題,問題是這樣的:

在一個頁面中,當有驗證控件的時候,當Button控件觸發OnClientClick事件,并且這個事件會返回true和false的時候,驗證控件就會失效,不起作用了。具體描述如下:

.Net頁面如下:

復制代碼 代碼如下:

<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:TextBox ID="TextBoxTest" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBoxTest"
ErrorMessage="不能為空" Display="None"></asp:RequiredFieldValidator><ajaxToolkit:ValidatorCalloutExtender
ID="ValidatorCalloutExtender1" TargetControlID="RequiredFieldValidator1" runat="server">
</ajaxToolkit:ValidatorCalloutExtender>
<asp:Button ID="ButtonText" runat="server" Text="測試" OnClientClick="return confirm('你確定要提交嗎?');" />
</div>
</form>

如上,在頁面中加入RequireFieldValidator驗證控件,使TextBoxTest的值不能為空,在ButtonText提交頁面時,要用戶確認是否需要提交。很簡單的一個頁面,貌似也沒有什么問題??墒钱擳extBoxTest的值為空的時候,驗證控件竟然不起作用,提交頁面成功。這是什么原因呢?

二、響應事件

這是怎么回事呢?首先我將ButtonTest的OnClientClick事件去掉后,驗證控件是起作用的。這又是為什么呢?我查看了頁面的源代碼,發現ButtonTest控件生成如下源代碼:

<input type="submit" name="ButtonText" value="測試" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ButtonText", "", true, "", "", false, false))" id="ButtonText" />

從這行源代碼可以看出,驗證控件在客戶端生成了一段javascript代碼,驗證TextBox中的值是否為空。當我加上ButtonTest的OnClientClick后,我重新查看了源代碼,ButtonTest控件生成的源代碼如下:

<input type="submit" name="ButtonText" value="測試" onclick="return confirm('你確定要提交嗎?');WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ButtonText", "", true, "", "", false, false))" id="ButtonText" />

從這行代碼中,可以非常清楚的看到問題處在什么地方了,在客戶端,首先執行的是自定義的javascript,然后在執行驗證控件生成的這一段javascript,顯然,在這種情況下,驗證控件就失去任何意義了。

三、響應控件

知道了問題處在什么地方,就好辦了,我的解決辦法是:在執行自定義的javascript(return confirm('你確定要提交嗎?‘)前 ,就要驗證頁面中的控件是否符合規則,于是我將ButtonTest的OnClientClick事件修改如下:

復制代碼 代碼如下:

<asp:Button ID="ButtonText" runat="server" Text="測試" OnClientClick="if(CheckClientValidate()) return Confirm('你確定要提交頁面嗎?');" />

CheckClientValidate()方法的代碼如下:
復制代碼 代碼如下:

<script language="javascript" type="text/javascript">
function CheckClientValidate(){ 
   Page_ClientValidate();
   if (Page_IsValid){
   return true;
   }else{
   return false;
   }
 }
</script>

運行,測試。驗證控件發揮作用。問題解決。

四、后記

這就是被我已知忽略的問題和解決方案,當我發覺這個問題的時候,冒出了一身冷汗,幸虧做了嚴格的服務器端驗證,不然可就慘了。從這里也可以看出指定嚴格的服務器端驗證是多么的有必要啊:-)。它不僅可以防止”黑客“繞過客戶端驗證,還可以防止因為自己沒有發覺的錯誤,造成數據的不準確。

注:

Page_ClientValidate(),本函數用于在包含微軟驗證控件的aspx頁面中,根據用戶輸入操作是否合法,返回True或者False

可直接判斷。

復制代碼 代碼如下:

 if(Page_ClientValidate())
 {
 return true;
 }
 else
 {
 return false;
 }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美福利视频在线观看| 清纯唯美亚洲综合| 97免费视频在线| 欧美又大粗又爽又黄大片视频| 91久久嫩草影院一区二区| 国产极品jizzhd欧美| 97超视频免费观看| 久久久久久一区二区三区| 亚洲色图国产精品| 国产精品夫妻激情| 日韩精品在线观看网站| 久99久在线视频| 精品国产成人av| 成人性生交xxxxx网站| 精品视频在线观看日韩| 91高清视频在线免费观看| 国产精品丝袜高跟| 欧美性猛交xxxx乱大交极品| 韩剧1988免费观看全集| 久久国产精品久久久久久久久久| 欧美精品久久久久a| 日韩精品视频免费| 国产日韩中文字幕| 欧美高清性猛交| 精品国内亚洲在观看18黄| 久久精品视频中文字幕| 国产精品视频资源| 日韩中文字幕视频在线| 国产69精品久久久久9| 91免费在线视频网站| 欧美最顶级丰满的aⅴ艳星| 97人洗澡人人免费公开视频碰碰碰| 91精品啪aⅴ在线观看国产| 亚洲国产97在线精品一区| 亚洲精品国偷自产在线99热| 久久久国产精品免费| 久久国产色av| 国产精品精品一区二区三区午夜版| 国产日本欧美一区二区三区在线| 亚洲精品不卡在线| 国产精品成人av性教育| 色偷偷亚洲男人天堂| 亚洲精品一区久久久久久| 在线成人中文字幕| 日韩电影中文 亚洲精品乱码| 美日韩在线视频| 欧美亚洲日本黄色| 久久夜色精品国产亚洲aⅴ| 欧美日韩国产限制| 成人xvideos免费视频| 亚洲国产成人在线视频| 久久久久久亚洲精品不卡| 国内成人精品一区| 国产成人久久精品| 亚洲小视频在线观看| 2024亚洲男人天堂| 国产亚洲精品久久久| 国产免费一区二区三区香蕉精| 性欧美xxxx视频在线观看| 国产女精品视频网站免费| 国产成+人+综合+亚洲欧美丁香花| 欧美精品日韩三级| 久久99青青精品免费观看| 国产综合久久久久久| 国产91免费看片| 一本一本久久a久久精品综合小说| 久久69精品久久久久久久电影好| 国产精品天天狠天天看| 国产精品高精视频免费| 亚洲在线一区二区| 欧美大肥婆大肥bbbbb| 久久精品视频一| 久久九九免费视频| 一区二区福利视频| 69av成年福利视频| 亚洲精选中文字幕| 欧美日韩国产91| 久久视频在线视频| 日韩国产在线看| 91中文字幕在线| 日韩电影在线观看永久视频免费网站| 91tv亚洲精品香蕉国产一区7ujn| 亚洲精品国产品国语在线| 国产成人亚洲综合青青| 国产一区二区三区在线免费观看| 国产美女被下药99| 97精品国产91久久久久久| 亚洲国产精品va在线观看黑人| 久久精品美女视频网站| 亚洲乱码一区二区| 91日本在线观看| 亚洲男人的天堂在线| 国产精品美女999| 91精品视频免费看| 久久国产精品偷| 高清欧美性猛交xxxx黑人猛交| 91在线无精精品一区二区| 亚洲夜晚福利在线观看| 国产69精品久久久久99| 日韩在线免费观看视频| 精品视频—区二区三区免费| 精品久久久久国产| 亚洲精品少妇网址| 色狠狠久久aa北条麻妃| 视频在线观看一区二区| 亚洲区一区二区| 在线激情影院一区| 欧美第一黄网免费网站| 久久黄色av网站| 国自在线精品视频| 在线成人激情黄色| 91精品一区二区| 久久综合亚洲社区| 久久精品久久久久| 亚洲性猛交xxxxwww| 欧美日韩亚洲精品内裤| 欧美性猛交xxxx乱大交蜜桃| 91社影院在线观看| 国产精品久久久久久网站| 久久人人爽人人爽人人片亚洲| 国产剧情日韩欧美| 久久综合伊人77777| 亚洲一级一级97网| 隔壁老王国产在线精品| 中文字幕精品在线视频| 日韩在线观看你懂的| 日韩亚洲国产中文字幕| 日韩成人av网址| 成年无码av片在线| 国产精品人人做人人爽| 91久久久久久久久久久久久| 久久久中文字幕| 欧美黄网免费在线观看| 青青草99啪国产免费| 国产成人一区三区| 欧美激情第1页| 久久男人av资源网站| 九色精品免费永久在线| 亚洲乱亚洲乱妇无码| 在线视频免费一区二区| 国产精品美女www| 国产在线98福利播放视频| 色爱精品视频一区| 久久久久中文字幕| 国产精品视频久久| 亚洲国产欧美一区二区三区同亚洲| 久久久国产精彩视频美女艺术照福利| 午夜精品一区二区三区视频免费看| 日韩精品在线观| 欧美性生交xxxxxdddd| 疯狂欧美牲乱大交777| 欧美日韩国产专区| 成人久久久久爱| 久久久精品一区二区| 日韩av免费一区| 亚洲片国产一区一级在线观看| 国产一级揄自揄精品视频| 中文字幕视频在线免费欧美日韩综合在线看| 91亚洲精品在线观看| 亚洲综合色激情五月| 久久久久国产精品免费| 精品无人区太爽高潮在线播放| 成人在线播放av| 欧美日韩国产一区二区|