使用纯javascript检测更改的输入文本框[重复]

Posted

技术标签:

【中文标题】使用纯javascript检测更改的输入文本框[重复]【英文标题】:Detect changed input text box using pure javascript [duplicate] 【发布时间】:2015-02-01 11:50:29 【问题描述】:

如果输入文本框被更改(用户已停止输入),我会尝试使用 javascript 分离,以便我可以验证表单并在需要时显示错误消息。我知道它可以使用 jQuery 来完成,但我希望用纯 javascript 来完成。

http://jsfiddle.net/xstqLkz4/2/

上面的链接使用jQuery演示了它

我没有太多代码。我不知道从哪里开始。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javascript validate</title>
    <link href='http://fonts.googleapis.com/css?family=Lato:300' rel='stylesheet' type='text/css'>
    <script src="domready.js"></script>
    <script>
    DomReady.ready(function() 
        (function () 
            var Username = document.getElementById("Username");
            var Password = document.getElementById("Password");
            var DOB = document.getElementById("DOB");
            var Email = document.getElementById("Email");
            var Country = document.getElementById("Country");

            if (Username.length <= 5)
                alert("Less then 5");
            

        )();
    );
    </script>
    <style>
        body
            font-family: 'Lato', sans-serif;
            position: absolute;
        

        label
            font-size: 1.2em;
            margin-right: 5px;
        

        input[type='text'], input[type='password']
            border: none;
            padding: 7px;
            background-color: rgba(242, 240, 240, 1);
            font-family: 'Lato', sans-serif;
            font-size: 0.85em;
            font-weight: 100;
        

        input[type='password'], input[type='text'], input[type='submit']
            margin-top: 18px;
        

        input[type='password']
            margin-left: 32px;
        

        input[type='submit']
            padding: 10px 119px;
            background-color: #F2F0F0;
            border: medium none;
            font-family: "Lato",sans-serif;
            margin-top: 24px;
            font-size: 1.4em;
            font-weight: 500;
        

        #wrp
            width: 800px;
            position: relative;
            left: 438px;
            top: 32px;
        

        #Username
            margin-left: 25px;
        

        #DOB
            margin-left: 3px;
        

        #Email
            margin-left: 70px;
        

        #Country
            margin-left: 43px;
        

        .errortxt
            color: rgba(206, 145, 145, 1);
        

        .error
            background-color: rgba(242, 228, 228, 1);
        

    </style>
</head>
<body>
    <div id="wrp">
        <form action="">
            <div>
                <label for="Username">Username</label>
                <input type="text" id="Username">
            </div>
            <div>
                <label for="Password">Password</label>
                <input type="password" id="Password">
            </div>
            <div>
                <label for="DOB">Date of birth</label>
                <input type="text" id="DOB">
            </div>
            <div>
                <label for="Gender">Gender</label>
                <div>
                    <label for="Male">Male</label>
                    <input type="radio">

                    <label for="Female">Female</label>
                    <input type="radio">
                </div>
            </div>
            <div>
                <label for="Email">Email</label>
                <input type="text" id="Email">
            </div>
            <div>
                <label for="Country">Country</label>
                <input type="text" id="Country">
            </div>
            <div>
                <input type="submit" value="Submit">
            </div>
        </form>
    </div>
</body>
</html>

【问题讨论】:

【参考方案1】:

jsFiddle 看起来很简单(虽然时间可能有点短)。

这段代码...

$("#input").on("input" ...

... 似乎表明它正在单个 &lt;input&gt; 标记上运行。您可能希望将其转移到一个类并在 alert() 触发的位置执行验证。

【讨论】:

我希望不使用 jQuery。 在这里查看答案***.com/questions/19655189/… 谢谢你,这解决了我的问题:)

以上是关于使用纯javascript检测更改的输入文本框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

用JS限制文本框只能输入数字,并给予提示,(纯JavaScript)

使用javascript重命名输入中的文本(每点更改空间)

javascript:在用户键入或更改文本框值时忽略无效输入[重复]

wim编辑器

更改文本框Javascript的单个值

纯 javascript 文本滑块,可更改 php 中的文本显示