JavaScript警告验证表



此表单的输出是每当您输入错误的字符时,警告就会在您的Onblur后立即出现在右侧。当您再次在框中输入正确的字符并再次输入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>

您的正则发动机可能缺乏启动( ^)和end( $)定界符,这意味着只要输入字符串包含任何地方的有效字符序列,它就不会验证正如预期的。试试以下以下等级:

/^[A-Za-z.'-]{2,15}s?[A-Za-z.'-]{2,15}s?[A-Za-z.'-]{2,15}$/

尝试

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

而不是

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

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

onBlur()当表单元素失去焦点时,事件发生 当用户发布键

时,onkeyup()发生事件。

最新更新