如何让输入警报消息仅在输入字母时起作用,而不是在数字时起作用?不让任何文本倾斜



如何让输入警报消息仅在输入字母时才起作用,而不是在数字时起作用?不让任何文本倾斜。在输入数字时,应该没有警报,但是在输入字母时,您会收到警报。我也接受JavaScript标记的解决方案,但如果有一个内联解决方案,那么这是首选。

这个函数的问题在于,如果你像我一样快速自卸车,它会让你在框中输入文本。它应该不让任何文本倾斜

JavaScript:

<script language="JavaScript">
function checkInp()
{
    var x = document.forms["isnform04"]["areinp"].value;
    var regex = /^[0-9]+$/;
    if (!x.match(regex))
    {
        alert("no text here, input numbers only");
        return false;
    }
}
</script>

.HTML:

<input type="text" name="areinp" size="30" value="" onChange="areCon()" onkeyup="return checkInp();">

请不要查询解决方案。

更新:我也用过这个:

<input type="text" name="areinp" size="30" value="" onChange="areCon()" onkeyup="if (this.value=this.value.replace(/[^d]/,'')) alert('no text here, input numbers only');">

如果要取消事件,则需要使用preventDefault(),即禁止文本框接受非数字输入。这样您就不必为删除它而烦恼。但是,preventDefault()不适用于onkeyup 。使用onkeydown .

JS:

function checkKey(e) 
{
    if (e.keyCode != 8 && // allow backspace
        e.keyCode != 46 && // allow delete
        e.keyCode != 37 && // allow left arrow
        e.keyCode != 39 && // allow right arrow
        (e.keyCode < 48 || e.keyCode > 57)) // allow numerics only
    {
        e.preventDefault();
    }
}

HTML

<input type="text" onkeydown="checkKey(event)" />

注意 - 在每次按键按下/向下/向上时提醒用户是可怕的。简直烦人。避免!静默地阻止不需要的键,如我上面所示。

onkeyup 属性中进行正则表达式测试。

onkeyup="if(/D/.test(this.value)) alert('no text here, input numbers only')"

通过玩弄和混合不同的代码,我自己找到了答案。我制作了一个过滤器,它只允许我在框中选择的字符,然后向其添加一条警报消息,WHALA 在那里工作。

这是我找到的答案:

JavaScript:

<script language="javascript" type="text/javascript">
function TextFilter(myfield, e)
{
    var key;
    var keychar;
    if (window.event)
    key = window.event.keyCode;
    else if (e)
    key = e.which;
    else
    return true;
    keychar = String.fromCharCode(key);
    if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) )
    return true;
    else if ((("0123456789.").indexOf(keychar) > -1))
    return true;
    else if ((keychar == ""))
    {
        if (myfield.value.indexOf(keychar) > -1)
        return false;
    }
    else
    return false;
}
function checkInp()
{
    var x = document.forms["isnform04"]["areinp"].value;
    var regex = /^[0-9]+$/;
    if (!x.match(regex))
    {
        alert("no text here, input numbers only");
        return false;
    }
}
</script>

.HTML:

<input type="text" name="areinp" id="test" size="30" value="" onChange="areCon()" onkeypress="return TextFilter(this, event)" onkeyup="checkInp()">

最新更新