簡體   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