JavaScript初體驗之衝出迷霧,我四個多小時的經驗教訓_AX

來源:互聯網
上載者:User

當JavaScript與ASP.NET結合,一些神奇的事件就發生了.

垃圾玩意,上傳個圖片都上傳不了,........我用文字敘述吧!
【需求】
一個html文字框(用戶端控制項),一個Button(伺服器端控制項),引發的四個多小時的故事....
我要在按下Button時,判斷文字框是否輸入了內容,如果內容為空白,執行一個提示必須輸入內容的動作,否則,執行相應事件.

【過程】
既然我們知道了javascript的好,那當然要用一下它了,先寫指令碼
username:文字框的name
loginstatwrong:是一個要顯示必須輸入內容的<li></li>的 id,可以不用管它.
 function isUserNameNull()
 {
         if(document.all("username").value=="") 
        { 
                document.getElementById("loginstatwrong").innerHTML="使用者名稱不可為空!"; 
                document.getElementById("loginstatwrong").style.display="block";
                 return false; 
         } 
        else 
        {
                 formGetPWD.action="getPWD.aspx?username="+document.all("username").value; 
                 formGetPWD.submit(); 
        }
}

【問題】
那麼我現在要在Html裡給Button加入 onclick=isUserNameNull()事件,
同時,又要為Button在後置代碼CodeBehind裡加上按鈕單擊事件,那麼
無論文字框有無內容,CodeBehind裡的事件都要執行.,,,
我怎麼實現當文字框內無內容時,單擊Button只在用戶端用javascript處理,而當文字框不為空白時,就把文字框的內容上傳到伺服器上進行處理呢?

【解決問題】
問同事,研究出兩個可行方案:①把Button變為用戶端控制項,然後在Page_Load裡通過傳遞來的參數進行判斷處理.
有點複雜,但還是發揮了javascript的優勢,不理想.
②把文字框轉化為伺服器端控制項,加個不可為空的驗證控制項就OK了,靠,這個還用說,菜鳥都知道.

上網查資料:搜了老半天也沒有這方面的東西,難道大家都沒有這個問題?還是大家都不屑於這個問題
伺服器控制項的JavaScript事件處理與其後置代碼的同時存在時的處理(這個是我想用的本文的另一個標題)
既然不行,還是問問我的Boss吧,真不是蓋的,Boss就是boss,三言兩語就把我打發了

Boss曰:在後置代碼裡讓Button調用javascript不就行了.(後置代碼裡呼叫指令碼?還可以這樣??菜鳥又漲見識了)還熱心的幫我寫了這行代碼:
this.Submit1.Attributes.Add("onclick","isUserNameNull();");

 注意:他回到自己座位上又補充了一句,你最好在後面加個return,我當時沒有在意,哪裡加return也不清楚,這樣我又調試了一個多小時問題還是沒有解決,後來突然我又想到了Boss說的return來,難道另有玄機?????
找來個貓:this.Button1.Attributes.Add("onclick","return confirm('你確定要刪除嗎?')");
畫只虎:this.Submit1.Attributes.Add("onclick","return isUserNameNull();");
---------困擾心頭多時的問題解決了!!!!!!!!!!!!

【總結】
①Boss的話每一句都是金玉良言,落掉一句都不行!!
晚了,明天待續....
②return 表示只有在執行formGetPWD.submit(); 後才與伺服器進行互動,不寫return的話,執行完指令碼後肯定會與伺服器互動.
③原來指令碼還可以被後置代碼調用.下面就是調用的isUserNameNull()方法.
Submit1.Attributes.Add("onclick","return isUserNameNull();");
④通過研究這個問題,我進行了多次跟蹤,更進一步的清楚了網頁調用的詳細過程.
⑤要不擇手段的請教別人,不要怕被笑話菜.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.