一般我們會用javascript在網頁的畫面上判斷某個textbox的值是否大於或者小於另一個textbox中的值

但若換成了在gridvew或datagride的話,要怎麼判斷呢?(因為之前同事在寫程式有遇到此問題,幸得另一個同事有解),因此想說記錄下來,以便日後還會用到

首先我們在textbox的onblur事件時做些判斷

什麼是onblur 事件:是指在對象失去焦點時發生event,一般你可以試用以下這行來做測試

<Input type="text" name="Test" value="Test" onblur=alert("我離開了這個Textbox!")>

 


回到原題,在想要觸發的textbox寫如下方語法,

<asp:TextBox   onblur='<%# DataBinder.Eval(Container, "RowIndex", "javascript:compare({0});") %>'  >


接下來寫個javascript來判斷

傳入id,也就是row的index,下列程式碼中的"NgvResult__ctl"為gridview的名稱,有用過visual studio.net工具的人,應該知道我在講什麼

"_txtRt_qty"為一個textbox的名稱

parseInt的解釋為返回由字串轉換得到的整數

 



<script type="text/javascript">

        function compare(id)
        {
            id = id + 1;
            var txtRt_qty = "NgvResult__ctl" + id + "_txtRt_qty";
            var txtSpcmarknum = "NgvResult__ctl" + id + "_txtSpcmarknum";
            var ans = "";

            Rt_qty = parseInt(document.getElementById(txtRt_qty).value);
            Spcmarknum = parseInt(document.getElementById(txtSpcmarknum).value);
            ans = parseInt(Rt_qty - Spcmarknum);
           
            if (ans < 0) {
                alert("a件數不可大於b件數");

                document.getElementById(txtSpcmarknum).value = "";
            }
        }

</script>


以上程式碼供參考

丫德 發表在 痞客邦 PIXNET 留言(0) 人氣()