Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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进行实时验证 我这里有一个文本框验证。错误消息不会以警报的形式出现,而是打印在html div标记中_Javascript_Button - Fatal编程技术网

使用javascript进行实时验证 我这里有一个文本框验证。错误消息不会以警报的形式出现,而是打印在html div标记中

使用javascript进行实时验证 我这里有一个文本框验证。错误消息不会以警报的形式出现,而是打印在html div标记中,javascript,button,Javascript,Button,Html: 单击按钮,我将打印错误消息 我的问题是,javascript中是否有任何实时验证 我的意思是,首先,错误消息应该在点击按钮时出现,用户在文本框中输入值的时间,如果名字文本框有任何值,我需要清除错误消息,而无需再次点击按钮 请检查我的链接并帮助我 您可以尝试使用,并且不应使用onclick事件处理程序进行提交 对于实时验证,可以使用onblur,将其插入输入框。这将在每次离开输入字段时验证输入 您可以尝试以下方法: <script> function checkFNam

Html:

  • 单击按钮,我将打印错误消息
  • 我的问题是,javascript中是否有任何实时验证
  • 我的意思是,首先,错误消息应该在点击按钮时出现,用户在文本框中输入值的时间,如果名字文本框有任何值,我需要清除错误消息,而无需再次点击按钮

请检查我的链接并帮助我

您可以尝试使用,并且不应使用onclick事件处理程序进行提交

对于实时验证,可以使用onblur,将其插入输入框。这将在每次离开输入字段时验证输入

您可以尝试以下方法:

<script>
function checkFName()
{
    fName = document.getElementById("fname").value;
    if(fName == ""){
        document.getElementById("error").innerHTML = "First name field cannot be empty";
        document.getElementById("fname").focus;
        return false;
    }
}

function checkLName()
{
    lname = document.getElementById("lname").value;
    if(lname == ""){
        document.getElementById("error").innerHTML = "Last name field cannot be empty";
        document.getElementById("lname").focus;
        return false;
    }
}
</script>


<div id="error" style="position:absolute; left:auto; top:7px;"></div>
    <div style="position:absolute; left:auto; top:25px;">
    First name: <input type="text" id="fname" name="fname" onchange="checkFName();"><br>
    Last name: <input type="text" id="lname" name="lname" onchange="checkLName();"><br>
    <input type="submit" value="Submit"><div>

函数checkFName()
{
fName=document.getElementById(“fName”).value;
如果(fName==“”){
document.getElementById(“error”).innerHTML=“名字字段不能为空”;
document.getElementById(“fname”).focus;
返回false;
}
}
函数checkLName()
{
lname=document.getElementById(“lname”).value;
如果(lname==“”){
document.getElementById(“error”).innerHTML=“姓氏字段不能为空”;
document.getElementById(“lname”).focus;
返回false;
}
}
名字:
姓氏:
希望这会有所帮助

//Javascript

<script type="text/javascript" language="javascript">
    var oneTimeMsgClikced = false;
    function requiredFields() {
        var fName = document.getElementById("fname").value;
        var lName = document.getElementById("lname").value;
        if (fName == "") {
            document.getElementById("error").innerHTML = "First name field cannot be empty";
            oneTimeMsgClikced = false;
        } else if (lName == "") {
            document.getElementById("error").innerHTML = "Last name field cannot be empty";
            oneTimeMsgClikced = false;
        } else {
            document.getElementById("error").innerHTML = "";
            if (oneTimeMsgClikced == false) {
                alert("successful");
                oneTimeMsgClikced = true;
            }
        }
    }
</script>
window.addEventListener('load', function init(){
    var signup = document.getElementById('signup'),
        fields = signup.getElementsByClassName('required'),
        errors = document.getElementById('errors'),
        error = '<li>{error}</li>',
        submitted = false,
        errorlog = [],
        index = 0,
        field,
        focusin;

    signup.addEventListener('submit', validateform);

    while (field = fields[index++]) {
        field.addEventListener('blur', validatefield);
        field.addEventListener('keyup', validatefield);
    }

    function validatefield() {
        var message = this.dataset['validateError'],
            sort = this.dataset['errorSort'],
            parent = this.parentNode;

        if (this.value === '' && (message && sort)) {
            errorlog[sort] = error.replace('{error}', message);
            parent.className += ' validationerror';

            if (!focusin) {
                focusin = this;
            }
        } else if (this.value !== '' && (message && sort)) {
            delete errorlog[sort];

            parent.className = parent.className.replace('validationerror', '');

            if (focusin == this) {
                focusin = null;
            }
        }

        if (!submitted) {
            isvalid();
        }
    }

    function validateform(event) {
        index = 0;
        errorlog = [];
        focusin = null;

        submitted = true;

        while (field = fields[index++]) {
            callevt(field, 'focus');
            callevt(field, 'blur');
        }

        submitted = false;

        if (!isvalid()) {
            if (focusin) {
                focusin.focus();
            }

            focusin = null;

            event.preventDefault();
            return false;
        }
    }

    function isvalid() {
        errors.innerHTML = '';

        if (errorlog.length) {
            errors.innerHTML = errorlog.join('');

            return false;
        }

        return true;
    }

    function callevt(el, type) {
        var evt = document.createEvent('HTMLEvents');

        evt.initEvent(type, true, true);
        el.dispatchEvent(evt);
    }
});

var onetimemsgcliked=false;
函数requiredFields(){
var fName=document.getElementById(“fName”).value;
var lName=document.getElementById(“lName”).value;
如果(fName==“”){
document.getElementById(“error”).innerHTML=“名字字段不能为空”;
OneTimeMsgClicked=假;
}else if(lName==“”){
document.getElementById(“error”).innerHTML=“姓氏字段不能为空”;
OneTimeMsgClicked=假;
}否则{
document.getElementById(“错误”).innerHTML=“”;
if(onetimemsgcliked==false){
警报(“成功”);
OneTimeMsgClicked=真;
}
}
}
//html代码

<body>
    <div id="error" style="position: absolute; left: auto; top: 7px;">
        Errors here
    </div>
    <div style="position: absolute; left: auto; top: 25px;">
        First name:
        <input type="text" id="fname" name="fname" onblur="requiredFields()" />
        <br />
        Last name:
        <input type="text" id="lname" name="lname" onblur="requiredFields()"/>
        <br />
        <input type="submit" value="Submit" onclick="requiredFields()" />
    </div>
</body>

这里的错误
名字:

姓氏:

这里有一种方法,它使用了一些比内联事件处理程序更现代的方法(例如,
onchange=“”
)。这是由
数据-
属性驱动的,正如您将看到的,尽管它当前未配置为处理除
输入[type=text]
之外的任何内容,但它可以扩展为使用
选择
s、
文本区域
s等

由于这些版本使用的是
attachEvent
而不是
addEventListener
来设置事件处理程序,因此下面的内容并不意味着可以与IE8及更低版本一起使用。同样,这可以在中使用,但在所有其他现代浏览器中都可以使用。它应该在IE9中工作,尽管还没有经过测试

这看起来可能有很多事情要做,但是看看它,看看你是否能弄清楚它是如何运作的。也可以随意问我任何你喜欢的问题

这是一把小提琴(在Chrome和Firefox中测试):

HTML

<aside>
    <ol id="errors"></ol>
</aside>
<section id="signup">
    <form action="#">
        <p>
            <label for="fname">First Name:</label>
            <span>
                <input type="text" id="fname" name="fname" class="required" 
                       data-validate-error="First name may not be empty."
                       data-error-sort="0"/>
            </span>
        </p>
        <p>
            <label for="lname">Last name:</label>
            <span>
                <input type="text" id="lname" name="lname" class="required" 
                       data-validate-error="Last name may not be empty."
                       data-error-sort="1"/>
            </span>
        </p>
        <p>
            <label for="addr1">Address 1:</label>
            <span>
                <input type="text" id="addr1" name="addr1" class="required" 
                       data-validate-error="Address may not be empty."
                       data-error-sort="2"/>
            </span>
        </p>
        <p>
            <label for="addr2">Address 2:</label>
            <span><input type="text" id="addr2" name="addr2"/></span>
        </p>
        <p>
            <label for="city">City:</label>
            <span>
                <input type="text" id="city" name="city" class="required" 
                       data-validate-error="City may not be empty."
                       data-error-sort="3"/>
            </span>
        </p>
        <p>
            <label for="state">State:</label>
            <span>
                <input type="text" id="state" name="state" class="required" 
                       data-validate-error="State may not be empty."
                       data-error-sort="4"/>
            </span>
        </p>
        <p>
            <span></span>
            <span style="text-align: right;">
                <input type="submit" value="Submit"/>
            </span>
        </p>
    </form>
</section>
Javascript

<script type="text/javascript" language="javascript">
    var oneTimeMsgClikced = false;
    function requiredFields() {
        var fName = document.getElementById("fname").value;
        var lName = document.getElementById("lname").value;
        if (fName == "") {
            document.getElementById("error").innerHTML = "First name field cannot be empty";
            oneTimeMsgClikced = false;
        } else if (lName == "") {
            document.getElementById("error").innerHTML = "Last name field cannot be empty";
            oneTimeMsgClikced = false;
        } else {
            document.getElementById("error").innerHTML = "";
            if (oneTimeMsgClikced == false) {
                alert("successful");
                oneTimeMsgClikced = true;
            }
        }
    }
</script>
window.addEventListener('load', function init(){
    var signup = document.getElementById('signup'),
        fields = signup.getElementsByClassName('required'),
        errors = document.getElementById('errors'),
        error = '<li>{error}</li>',
        submitted = false,
        errorlog = [],
        index = 0,
        field,
        focusin;

    signup.addEventListener('submit', validateform);

    while (field = fields[index++]) {
        field.addEventListener('blur', validatefield);
        field.addEventListener('keyup', validatefield);
    }

    function validatefield() {
        var message = this.dataset['validateError'],
            sort = this.dataset['errorSort'],
            parent = this.parentNode;

        if (this.value === '' && (message && sort)) {
            errorlog[sort] = error.replace('{error}', message);
            parent.className += ' validationerror';

            if (!focusin) {
                focusin = this;
            }
        } else if (this.value !== '' && (message && sort)) {
            delete errorlog[sort];

            parent.className = parent.className.replace('validationerror', '');

            if (focusin == this) {
                focusin = null;
            }
        }

        if (!submitted) {
            isvalid();
        }
    }

    function validateform(event) {
        index = 0;
        errorlog = [];
        focusin = null;

        submitted = true;

        while (field = fields[index++]) {
            callevt(field, 'focus');
            callevt(field, 'blur');
        }

        submitted = false;

        if (!isvalid()) {
            if (focusin) {
                focusin.focus();
            }

            focusin = null;

            event.preventDefault();
            return false;
        }
    }

    function isvalid() {
        errors.innerHTML = '';

        if (errorlog.length) {
            errors.innerHTML = errorlog.join('');

            return false;
        }

        return true;
    }

    function callevt(el, type) {
        var evt = document.createEvent('HTMLEvents');

        evt.initEvent(type, true, true);
        el.dispatchEvent(evt);
    }
});
window.addEventListener('load',function init(){
var signup=document.getElementById('signup'),
fields=signup.getElementsByClassName('required'),
errors=document.getElementById('errors'),
error='
  • {error}
  • ', 提交=错误, errorlog=[], 指数=0, 领域 聚焦蛋白; signup.addEventListener('submit',validateform); 而(字段=字段[index++]){ 字段。addEventListener('blur',validatefield); 字段。addEventListener('keyup',validatefield); } 函数validatefield(){ var message=this.dataset['validateError'], sort=this.dataset['errorSort'], parent=this.parentNode; if(this.value==''&&(消息和排序)){ errorlog[sort]=error.replace({error}),消息; parent.className+=“validationerror”; 如果(!focusin){ focusin=此; } }else if(this.value!=''&&(消息和排序)){ 删除错误日志[排序]; parent.className=parent.className.replace('validationerror',''); if(focusin==此){ focusin=null; } } 如果(!已提交){ isvalid(); } } 函数validateform(事件){ 指数=0; errorlog=[]; focusin=null; 提交=真实; 而(字段=字段[index++]){ callevt(字段“焦点”); callevt(字段“模糊”); } 提交=错误; 如果(!isvalid()){ 如果(聚焦){ focusin.focus(); } focusin=null; event.preventDefault(); 返回false; } } 函数isvalid(){ errors.innerHTML=''; if(errorlog.length){ errors.innerHTML=errorlog.join(“”); 返回false; } 返回true; } 被调用函数VT(el,类型){ var evt=document.createEvent('HTMLEvents'); evt.initEvent(类型,true,true); el.调度事件(evt); } });
    你能检查一下链接吗。。按钮的点击事件处理程序是必需的。@Rachel-Bazinga777意味着您需要处理
    表单
    s
    submit
    事件,而不是
    输入[type=submit]
    的点击事件。这不会阻止
    表单
    的提交(单击
    onclick
    ),因为
    window.addEventListener('load', function init(){
        var signup = document.getElementById('signup'),
            fields = signup.getElementsByClassName('required'),
            errors = document.getElementById('errors'),
            error = '<li>{error}</li>',
            submitted = false,
            errorlog = [],
            index = 0,
            field,
            focusin;
    
        signup.addEventListener('submit', validateform);
    
        while (field = fields[index++]) {
            field.addEventListener('blur', validatefield);
            field.addEventListener('keyup', validatefield);
        }
    
        function validatefield() {
            var message = this.dataset['validateError'],
                sort = this.dataset['errorSort'],
                parent = this.parentNode;
    
            if (this.value === '' && (message && sort)) {
                errorlog[sort] = error.replace('{error}', message);
                parent.className += ' validationerror';
    
                if (!focusin) {
                    focusin = this;
                }
            } else if (this.value !== '' && (message && sort)) {
                delete errorlog[sort];
    
                parent.className = parent.className.replace('validationerror', '');
    
                if (focusin == this) {
                    focusin = null;
                }
            }
    
            if (!submitted) {
                isvalid();
            }
        }
    
        function validateform(event) {
            index = 0;
            errorlog = [];
            focusin = null;
    
            submitted = true;
    
            while (field = fields[index++]) {
                callevt(field, 'focus');
                callevt(field, 'blur');
            }
    
            submitted = false;
    
            if (!isvalid()) {
                if (focusin) {
                    focusin.focus();
                }
    
                focusin = null;
    
                event.preventDefault();
                return false;
            }
        }
    
        function isvalid() {
            errors.innerHTML = '';
    
            if (errorlog.length) {
                errors.innerHTML = errorlog.join('');
    
                return false;
            }
    
            return true;
        }
    
        function callevt(el, type) {
            var evt = document.createEvent('HTMLEvents');
    
            evt.initEvent(type, true, true);
            el.dispatchEvent(evt);
        }
    });