ASP.net 讓 Enter 無效

在Web Form中為了避免使用在在按 [ Enter ] 時去觸發了意想不到的按鈕

在頁面上擺上一顆 asp Button 控制項
然後把網頁的預設按鈕指定給它

//PageLoad 時執行

protected void Page_Load(object sender, EventArgs e)

{
//把預設按鈕指定給它
this.Page.Form.DefaultButton = btn_def.UniqueID;
//再把它隱藏起來
btn_def.Style.Add(“display”, “none”);

}

然後給Button的 Click 事件一個空的事件

protected void Button1_Click(object sender, EventArgs e)
{
//什麼都不做,避免使用者誤按Enter用

}

但是這樣還是有個缺點,就是使用者真的按Enter時 依舊會觸發這個空的事件
還是會造成網頁的PostBack,一來一回,頁面跳來跳去的,還是挺煩的

因此,在Button的 OnClientClick 屬性加入

return false;

這樣,就可以直接在Client端 擋掉

當然,有一得,必有一失,就是網頁上本來真的用來做預設 Enter 按鈕也就失效了
只能乖乖地用滑鼠按

上述的作法,雖然不盡完善
事實上,用JavaScript來處理可以更完美的,逐個控制項去指定要觸發的或者不觸發的事件

不過案例中的這一支程式,是薪資程式….光輸入用的欄位就有200多個,為此逐一去加入處理事件真有點呆

只要能讓他正常運作,不出錯,原則上就達到需求
還是把重點放在邏輯處理上吧




相連文章

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *