2012-01-31 26 views
0

我在gridview裏面有文本框。需要驗證這個文本框的數值。我嘗試使用下面的代碼,但它的giveng me對象需要error.my代碼如下所示。Gridview內部的文本框的數值驗證

<asp:TabContainer ID="tcexe" runat="server" ActiveTabIndex="0" AutoPostBack="true"> 
<asp:tabpanel> 
<asp:gridview> 
<ItemTemplate> 
<asp:TextBox ID="txt1" runat="server" MaxLength="4" Text='<%# Eval("value") %>' 
    OnKeyPress=" return AllowNumericOnly(this);"> javascirpt used is function 
</ItemTemplate> 
</asp:TenGrid> 
</asp:tabpanel> 

AllowNumericOnly(e) 
{ 
    var keycode; 
    if (window.event) 
      keycode = window.event.keyCode; 
    else if (event) 
      keycode = event.keyCode; 
    else if (e) 
      keycode = e.which; 
    else return true; 
    if ((keycode > 47 && keycode <= 57)) { return true; } 
    else { return false; } return true; 
} 

我需要在Mozilla和IE中支持此功能。誰能幫助我

+0

不要惹左右鍵碼,只檢查值。用戶可以輸入小數位嗎?什麼值被拖拽或粘貼? – RobG 2012-01-31 07:17:08

+0

它不應該允許小數。只有整數。 – Akshata 2012-01-31 07:32:04

+0

然後用'/^\ d * $ /。test(inputValue)'等正則表達式驗證內容,如果用戶輸入的不是數字,就給用戶一個提示。 – RobG 2012-02-01 00:10:57

回答

-1
<ItemTemplate> 
<asp:TextBox ID="txtObtainMarks" runat="server" Width="50" MaxLength="2" OnKeyPress=" return AllowNumericOnly(this);"></asp:TextBox> 
</ItemTemplate> 

<script type="text/javascript" charset="utf-8"> 

     function AllowNumericOnly(e) { 
      var keycode; 
      if (window.event) 
       keycode = window.event.keyCode; 
      else if (event) 
       keycode = event.keyCode; 
      else if (e) 
       keycode = e.which; 
      else return true; 
      if ((keycode > 47 && keycode <= 57)) { return true; } 
      else { return false; } return true; 
     } 
    </script> 
0
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>test</title> 
<script type="text/javascript"> 

function isNumber(e) { 
alert(e); 
    //condition returns true when shift + tab or tab key is pressed 
    if((e.shiftKey && e.keyCode == 9) || (e.keyCode == 9)) { 
      return true; 
    } 
    //for other conditions the shift key is disabled 
    if(e.shiftKey) { 
      return false; 
    } 

    var keynum = ''; 
    // fetching the key code for IE 
    if(window.event) { 
     keynum = e.keyCode; 
    } 
    // fetching the key code for Netscape/Firefox/Opera 
    else if(e.which) { 
     keynum = e.which; 
    } 

    // 48-57 = 0-9, backspace = 8, tab = 9, 96 -105 = Numpad Digits 
    // F1-F12 = 112 - 123, arrows = 37 - 40 
    if ((keynum >= 48 && keynum <= 57) 
      || keynum == 8 
      || keynum == 9 
      || (keynum >= 112 && keynum <= 123) 
      || (keynum >= 37 && keynum <= 40) 
      || (keynum >= 96 && keynum <= 105) 
      || keynum == 46) { 
       return true; 
    } 
    else { 
       return false; 
    } 
} 

</script> 
</head> 
<body> 
Test No. <input type="text" id="testId" onkeydown="return isNumber(event);"></input> 
</body> 
</html>