台灣最大程式設計社群網站
線上人數
1261
 
會員總數:239589
討論主題:185868
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 利用javascript呼叫後端程式碼後出現的問題
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
利用javascript呼叫後端程式碼後出現的問題
價值 : 200 QP  點閱數:252 回應數:10

樓主

mar234964
門外漢
0 7
366 18
發送站內信

我先說明一下情況

在我的畫面上有textbox1,textbox2 和一個按鈕button1(此按鈕隱藏),

在從textbox1離開時(onblur)會呼叫javascript 語法AAA() ,

AAA()會執行button1的Click事件,

button1的Click事件會判斷textbox1的值是多少,若為0就Alert提示訊息,其餘則不動作


假設我現在focus 在textbox1,其值為0,

當我點擊textbox2而離開textbox1時會觸發textbox1的onblur事件,

而當前textbox1的值是0 所以Alert 提示訊息,

以上沒有問題


而我的問題是:

假設我現在focus 在textbox1,其值為1,

當我點擊textbox2而離開textbox1時會觸發textbox1的onblur事件,

當前textbox1的值是1 不提示訊息,

但我因點擊而focus在textbox2的游標會消失!!!


我希望觸發textbox1的onblur事件後,我的游標會停留在原本位置上,

為此我需要做甚麼樣的修改呢??

請各位前輩指點,感謝。

附上程式碼:







搜尋相關Tags的文章: [ javascript ] , [ 後端 ] , [ 前端 ] , [ focus ] ,
本篇文章發表於2017-05-15 16:42
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應

假設我現在focus 在textbox1,其值為1,
當我點擊textbox2而離開textbox1時會觸發textbox1的onblur事件,
當前textbox1的值是1 不提示訊息,

但我因點擊而focus在textbox2的游標會消失!!!
我希望觸發textbox1的onblur事件後,我的游標會停留在原本位置上,
為此我需要做甚麼樣的修改呢??


感覺怪怪的
從您的描述得到結論

一開始focus在TextBox1
接這TextBox1在OnBlur事件後,游標停樓在『原本的位置(TextBox1)』
然後...Forcuse就無法離開了?
^.^a

本篇文章回覆於2017-05-15 18:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

mar234964
檢舉此回應
TO topcat 前輩:

您說的『原本的位置』 我是指textbox2喔


不好意思,我再解釋得清楚點,

我點了textbox2後,正常游標應該要focus在textbox2上,

但因為跑了textbox1的onblur,而讓『原本在textbox2』上的游標消失,

而我希望的是繼續停留在textbox2上
本篇文章回覆於2017-05-15 19:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
onblur應該不會讓TextBox2移開游標
除非您有做alert之類的,讓游標因為要按確定或取消,而移開

以下是小喵的測試

^_^
本篇文章回覆於2017-05-15 23:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

mar234964
檢舉此回應
To topcat 前輩:

您的範例是不會離開的,但我需要的是:

利用onblure 呼叫按鈕的Click事件,然後在Click事件裡做判斷


我認為問題點應該是因為執行click事件時會pageload,所以游標消失,但要怎解決卻想不到辦法..




本篇文章回覆於2017-05-16 09:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
利用onblure 呼叫按鈕的Click事件,然後在Click事件裡做判斷

您是說,您會呼叫按鈕的Click做PostBack
所以希望在PostBack後,從Server端來看怎麼去設定focuse在Textbox2上面嗎?

如果明確的知道PostBack後,要道TextBox2上面,這個還好
比較難的是如果PostBack之前,focus在任一項目上,而您要回到那個項目,這個就比較難了

假設,您確定就是要回到TextBox2的上面
其實您可以寫在Click事件中,直接指定



醬子就可以了

^.^a
本篇文章回覆於2017-05-17 10:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
類似這樣

Default.aspx


Default.aspx.vb



^_^
本篇文章回覆於2017-05-17 13:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

mar234964
檢舉此回應
To topcat 前輩:

不好意思,我需要比較困難的那種@@

我實際上的畫面會有很多控制項,而我沒辦法肯定使用者會點哪個控制項離開textbox1,甚至有可能先點checkbox

而先點checkbox的情況,還會造成 打勾→因從textbox1離開而跳出訊息→勾又消失的情況

整個就是不知怎麼辦...



本篇文章回覆於2017-05-17 16:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
比較麻煩的是很難去取得之前的focus在哪裡
相對比較好做的,反而是onblur時,透過Ajax呼叫後端的程式去處理
這樣畫面不會重整,focus也不會有所變動、畫面也不會閃、使用者體驗也比較好

小喵個人建議您,不如把onblur呼叫按鈕的click改為透過Ajax去啟動後端的程式
^_^
本篇文章回覆於2017-05-17 18:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
您可以下關鍵字『WebForm, jQuery, Ajax』
可以找到相關的資訊

^_^
本篇文章回覆於2017-05-17 18:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

mar234964
檢舉此回應
To topcat 前輩:

瞭解,感謝您的建議,看來javascript是無法達成我的需求的,

我再去試試 jQuery, Ajax,

謝謝回答
本篇文章回覆於2017-05-18 10:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.