简体   繁体   English

表单验证,不会显示div标签中的错误

[英]Form Validation, errors in div tag wont show

Ok, i have form with few inquiries. 好的,我的查询表格很少。 I started to write my validation code for it , but my errors wont show. 我开始为此编写验证代码,但是我的错误不会显示。 It founds errors because it changes state of div from hidden to visible, but wont show type of error. 它发现错误是因为它将div的状态从隐藏更改为可见,但不会显示错误类型。

Here is my valform.js 这是我的valform.js

reason = "";
function validateForm(form) 
{
    reason += validateAge(form.age);
    if (reason != "") 
    {
        document.getElementById('erbox').style.visibility = 'visible';
        return false;
    }
    return true;
}

function validateAge(fld)
{
    function isNumber (o) 
    {
        return ! isNaN (o-0);
    }

    var error ="";
    var x=fld.value;
    if (x==null || x=="" )
    {
        error="Age must be filled";
    }
    else if (isNumber(x)==false) 
    {
        error="Your age is not numeric value!";
    }
    else if (x<18) 
    {
        error = "You need to be 18 or older!";
    }
    return error;
}

And here is my html form: 这是我的HTML表单:

<div id="upform">
<form name="lastcheck" action="lastcheck.php" method="post" onsubmit="return  
    validateForm(this);">
    Location: <input type="text" name="locationcity">
    Country:  <input type="text" name="country">
    Gender:  <input type="radio" name="group1" value="w"> Woman<br>
    <input type="radio" name="group1" value="m"> Man<br>
    Age: <input type="number" name="age" size="4" maxlength="2">
    <input type="submit" value="Submit">
    <div style="visibility:hidden" id="erbox">Next error(s) occured: 
    <script type="text/javascript"> document.write.lastcheck('reason');
    </script>
    </div>
    </form> 
</div>

I included js file in header like this: 我在标题中包含了js文件,如下所示:

<script src="js/valform.js"></script>

So for now when it error occurs in AGE field my hidden error form becomes visible but no info about errors. 因此,现在,当在AGE字段中发生错误时,隐藏的错误表单将变为可见,但没有有关错误的信息。

I have another problem, still learning javascript: 我还有另一个问题,仍在学习javascript:

so wanted to add radio button validation and it breaks my whole validation: 所以想添加单选按钮验证,这破坏了我的整个验证:

function vGender(fld) {

var x = fld.value;


var i = 0;
while (i < x.length) {
    if (x[i].checked) formValid = true;
    i++;        
}

if (!formValid) error = "blabla";
return error;
}​

and i added another reason at top like this: 我在顶部添加了另一个原因,例如:

reason += vGender(form.radios);
document.write.lastcheck('reason'); 

That would populate your div on load - your validation function is only showing it, but not populating it with a new message so it's empty. 这将在加载时填充div-验证功能仅显示它,而不用新消息填充它,因此它为空。

Try this: 尝试这个:

if (reason != "") {
    var box = document.getElementById('erbox');
    box.style.visibility = 'visible';
    box.innerHTML = 'Next error(s) occurred: ' + reason; // here you go
    return false;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM