2016-04-30 56 views
0

我正在学习JavaScript,我试图做一个简单的窗体验证。 我把onblur事件放在一个表单上,它不起作用,但如果事件放在输入本身上,它确实有效。如果有人能帮助我解决这个问题,那将会很棒。如何使此验证工作?

function checkInfo() { 
 
    var name = document.getElementById('name').value, 
 
    email = document.getElementById('email').value; 
 
    
 
    if(name === '' || email === '') { 
 
    console.log('validate'); 
 
    return false; 
 
    } 
 
    else { 
 
    return true; 
 
    } 
 
};
<form method="post" name="myForm" id="my-form" onblur="checkInfo();"> 
 
    <div> 
 
    <input type="text" id="name" name="name" placeholder="Name (Required)" required> 
 
    </div> 
 
    <div> 
 
    <input type="email" id="email" name="email" placeholder="Email (Required)" required> 
 
    </div> 
 
    <div> 
 
    <input type="text" id="subj" placeholder="Subject"> 
 
    </div> 
 
    <div> 
 
    <textarea cols="30" rows="10" placeholder="Describe your project in detail..."> </textarea> 
 
    </div> 
 
</form>

回答

0

更改下面的代码

<form method="post" name="myForm" id="my-form" onblur="checkInfo();"> 

<form method="post" name="myForm" id="my-form" onsubmit="return checkInfo()"> 

它应该工作。你可能还需要一个行动属性添加到形式,例如:

<form method="post" action = "demo_form.asp" name="myForm" id="my-form" onsubmit="return checkInfo()">

这意味着在提交时,将表格数据到一个名为“demo_form.asp(或demo_form文件。 PHP等)“,来处理输入。