繁体   English   中英

在输入字段中输入块编号

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM