2014-03-31 74 views
0

我目前已经有一个验证我的表单并显示错误,如果一个字段没有完成的JavaScript代码。我也想知道我怎么可以在窗体中回显错误,例如,如果'fname'没有填写,那么这说'你没有填写fname',或者如果'fname'和fcompany'没有填写在这里说javascript validate form check - echo out errors in form?

You did not fill in fname 
you did not fill in fcompany 

继承人我的html:

<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post"> 
Company Name: <input type="text" name="fname"> 
Company Registration Number: <input type="text" name="fcompany"> 

继承人我的javascript:

<script> 
function validateForm() 
{ 
var x=document.forms["myForm"]["cname"].value; 
if (x==null || x=="") 
    { 
document.body.scrollTop = document.documentElement.scrollTop = 0; 
    document.getElementById("alertBox").style.display='block'; 
    return false; 
    } 
} 
</script> 
+0

'的document.getElementById( “alertBox”)的innerHTML = “你的错误在这里”'? – gaurav

回答

1

让你的验证函数生成错误的数组,然后让另一个函数采取错误阵列和构建HTM L:。

http://jsfiddle.net/J9LJj/

function displayErrors(errors){ 
    var container = document.getElementById("alertBox"); 
    var html = "<ul>"; 

    for(var i=0; i<errors.length; i++){ 
     html += "<li>" + errors[i] + "</li>"; 
    } 
    html += "</ul>"; 

    container.innerHTML = html; 
    container.style.display = "block"; 
} 

function validateForm(){ 
    var fname = document.forms["myForm"]["fname"].value; 
    var fcompany= document.forms["myForm"]["fcompany"].value; 

    var errors = []; 

    if(fname == ""){ 
     errors.push("you did not fill in fname"); 
    } 
    if(fcompany == ""){ 
     errors.push("you did not fill in fcompany"); 
    } 

    if(errors.length > 0){ 
     displayErrors(errors); 
     return false; 
    } else { 
     return true; 
    } 
} 
+0

嗨,谢谢你,但它不工作,它不取消窗体的默认操作,表单提交到下一页,没有显示任何错误。我想要取消默认的表单动作,并在父页面上显示错误 –

+0

这是行得通的,请参阅此演示:http://jsfiddle.net/J9LJj/如果它不适合你,请检查字段名称'fname'和'cname'对于你的实际表单是正确的。也看看应该缩小问题的错误控制台(F12)。 – MrCode