我有一个文本框,我只需要接受数字。键盘中的所有其他键不会在textbox中生成事件。我创建了一个javascript代码
<script type="text/javascript">
function onlyNumbers(evt)
{
var e = event || evt; // for trans-browser compatibility
var charCode = e.which || e.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
</script>
html是
<asp:TextBox ID="txtFreeship" runat="server" Width="50px" onkeypress="return onlyNumbers();">
</asp:TextBox>
它在mozilla firefox中无法正常工作(在Internet Explorer中完美运行)。任何人都可以回答
答案 0 :(得分:0)
您需要从onkeypress传递'event'对象。 您可以参考Textbox onKeyPress in Firefox not working
答案 1 :(得分:0)
就像已经回答的那样,你必须使用event
。但它仍然无法在Firefox(FF)中工作,因为keyCode
为keypress
事件返回0。这是实现您想要的简化方法。在文本框中,使用onkeypress="return onlyNumbers(event.charCode || event.keyCode);"
(charCode
是FF使用的)。
现在onlyNumbers
可能很短:
function onlyNumbers(chr){
return !(chr > 31 && (chr < 48 || chr > 57))
}
答案 2 :(得分:0)
在表单加载
上调用以下函数function isDecimalKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && charCode > 46 && (charCode < 48 || charCode > 57)) {
return false;
}
else {
return true;
}
}
txtNoSeat.Attributes["onKeyPress"] = "Javascript:return isNumberKey(event);";