一般我們會用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>
以上程式碼供參考
留言列表