[英]Block numbers from being entered in an input field
好的,首先了解一些背景知识,除了YUI之外,我不能为此项目使用任何JavaScript库。
我想做的是接受输入并将其阻止为仅允许数字输入。 我知道仅在验证中这样做会更容易,但PM希望在按键时使用。 我所拥有的是从网上奔跑而来的,并且在Firefox中效果很好。 不幸的是,这必须与IE8和IE6兼容,并且两者都不起作用。
这是我到目前为止的内容:
<script type="text/javascript">
function onlyNumbers(evt) {
evt = (evt) ? evt : window.event
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
</script>
<input type="text" id="<%=Model.HtmlID %>" value="<%= startingAnswer %>"name="<%=Model.HtmlID %>"
maxlength="<%=maximumLength %>" onkeypress="return onlyNumbers(event);" />
关于它有什么问题的任何想法使它无法在IE中工作?
<script type="text/javascript">
function onlyNumbers(target) {
var newVal = document.getElementById(target).value;
if (isNaN(newVal)) {
document.getElementById(target).value = newVal.replace(/[^0-9.]/g, "");
}
}
</script>
<input type="text" id="<%=Model.HtmlID %>" value="<%= startingAnswer %>"name="<%=Model.HtmlID %>"
maxlength="<%=maximumLength %>" onkeyup="javascript:onlyNumbers('<%=Model.HtmlID %>');" />
花费了一些额外的精力和一点创造力,但我确实弄清楚了这一点。 这并没有真正禁止输入,相反,只要您放开键,它就会清除掉所有不允许的内容。 实际上也可以在IE6上使用
YUI将文本字段验证作为其表单模块的一部分。 一个例子(YUI 3)
var myForm = new Y.Form({
method : "post",
action : "/test.php?action=submit",
inlineValidation : true,
fields : [
{name : 'input1', type : 'text', label : 'Numbers only: ', validator : 'IntegerField'},
{type : 'submit', label : 'Submit'},
{type : 'reset', label : 'Reset'}
]
});
myForm.render('#formContainer');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.