Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript警告验证表单_Javascript_Validation_Html - Fatal编程技术网

Javascript警告验证表单

Javascript警告验证表单,javascript,validation,html,Javascript,Validation,Html,此表单的输出是,每当您输入错误的字符时,onBlur后右侧将显示一条警告。当您在框中输入正确的字符并再次启用模糊时,警告将消失 脚本运行正常,除非您输入有效字符,然后在文本框外单击,然后在文本框内再次单击并输入不需要的字符而不删除以前输入的有效字符,否则不会显示警告消息 在这种情况下如何显示警告消息,有什么建议吗 代码如下: <!DOCTYPE html> <html> <head> </head> <body> <scr

此表单的输出是,每当您输入错误的字符时,onBlur后右侧将显示一条警告。当您在框中输入正确的字符并再次启用模糊时,警告将消失

脚本运行正常,除非您输入有效字符,然后在文本框外单击,然后在文本框内再次单击并输入不需要的字符而不删除以前输入的有效字符,否则不会显示警告消息

在这种情况下如何显示警告消息,有什么建议吗

代码如下:

  <!DOCTYPE html>
<html>
<head>

</head>
<body>

<script>

    function editThisOne(regThat,input,spanId,spanMessage)
    {
        if(!regThat.test(input))
        {
            if(spanId!=null)
            while(spanId.firstChild)
            spanId.removeChild(spanId.firstChild)
            spanId.appendChild(document.createTextNode(spanMessage))
            return false;
        }
        else
        {
            if(spanId!=null)
            while(spanId.firstChild)
            spanId.removeChild(spanId.firstChild)
            return true;
        }
    }

    function changeThis(wow,that)
    {
        return editThisOne(/[A-Za-z\.\'\-]{2,15}\s?[A-Za-z\.\'\-]{2,15}\s?[A-Za-z\.\'\-]{2,15}/,wow.value,that,"Please enter name correctly");
    }

</script>
<div>
    Enter your name:
        <input id="name" onBlur="changeThis(this,document.getElementById('thisSpan'))">
        <span id="thisSpan"></span>
</div>
</body>
</html>

函数editThisOne(regThat、input、spanId、spanMessage)
{
如果(!regThat.test(输入))
{
如果(spanId!=null)
while(spanId.第一个孩子)
spanId.removeChild(spanId.firstChild)
spanId.appendChild(document.createTextNode(spanMessage))
返回false;
}
其他的
{
如果(spanId!=null)
while(spanId.第一个孩子)
spanId.removeChild(spanId.firstChild)
返回true;
}
}
功能改变这个(哇,那个)
{
返回editThisOne(/[A-Za-z\.\'-]{2,15}\s?[A-Za-z\.\'-]{2,15}\s?[A-Za-z\.\'-]{2,15}/,wow.value,即“请正确输入名称”);
}
输入您的姓名:
试试看


而不是

<input id="name" onBlur="changeThis(this,document.getElementById('thisSpan'))">


onkeyup在每次击键时都会触发(每次,您都会让刚刚按下的按钮返回)。onblur只是触发,当元素失去焦点时(单击其他位置,按tab键)

您的正则表达式可能缺少开始(
^
)和结束(
$
)分隔符,这意味着只要输入字符串的任何位置包含有效的字符序列,它就不会按预期进行验证。请尝试以下正则表达式:

/^[A-Za-z\.\'\-]{2,15}\s?[A-Za-z\.\'\-]{2,15}\s?[A-Za-z\.\'\-]{2,15}$/
onBlur()
表单元素失去焦点时发生事件
onkeyup()
每当我先键入正确的字符,然后再键入错误的字符时,当用户释放一个仍不工作的键时,就会发生此事件。请检查UweB的答案或将正则表达式转过来:搜索不需要的字符,并在找到错误时打印错误。已经检查过,我忘了两端的插入符号和美元了,谢谢你,先生!就这样!我忘了美元:D哈哈,我真是太傻了,谢谢你!
/^[A-Za-z\.\'\-]{2,15}\s?[A-Za-z\.\'\-]{2,15}\s?[A-Za-z\.\'\-]{2,15}$/