2015-10-22 131 views
-3

我想在点击“登录”按钮后验证我的登录表单,然后成功运行一个php文件。但验证脚本没有运行。下面是我的代码片段。触发onclick事件后Javascript未运行

<head> 
     <script type="text/javascript" src="services.js"></script> 
    </head> 
<body> 
    <form method="post" action="log.php"> 
    <div id="PasswordField" class="col-xs-4"/> 
        <label for="u_pswd">Password:</label> 
        <input id="u_pswd" type="password" class="form-control" size="25%" placeholder="Enter alteast 8 characters" /> 
       </div> 
       <br><br><br><br> 
       <button id="submit" name="checkout" class="btn btn-primary" type="submit" value="submit" onclick="return success()">Log In</button> 
    </form> 
</body> 

//services.js 
function logInPass(){ 
    var pass = document.getElementById("u_pswd"); 
    var re = new RegExp("^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#[email protected]$%^&*-]).{8,}$"); 

    if(u_pswd=="") 
     alert("Please enter password !"); 
    else 
     if(u_pswd.search(" ")!=-1) 
      alert("please enter valid password"); 

    if(!re.test(pass)) 
     alert("Please enter valid password"); 
} 
+1

你看到一个错误在你的控制台? 'return validation_function();'的问题是你的验证函数中的一个错误会导致返回跳过,并且它会提交。考虑使用'addEventListener'和'event.preventDefault();'。此外,验证检查应移至表单的'onsubmit',因为提交表单的方法比单击按钮更多(例如,按[Enter]])。 – Halcyon

+0

请原谅,人为错误。 –

+0

你没有从点击处理程序返回任何东西,因此提交发生。嗯......在HTML中你调用'success()',例子中的函数是'logInPass'。 – Teemu

回答

0

我测试了下面的代码。请你检查一下 对不起,我是新来堆放超过流动

function logInPass(){ 
    var pass = document.getElementById("u_pswd").value; 
    var re = new RegExp("^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#[email protected]$%^&*-]).{8,}$"); 
if(pass == "") 
{ 
    alert("Please enter password !"); 
    return false; 
} 
else 
{ 
    if(pass.search(" ")!=-1) 
    { 
     alert("please enter valid password"); 
     return false; 
    } 
} 

if(!re.test(pass)) 
{ 
    alert("Please enter valid password"); 
    return false; 
} 

}

请通过此更换onsubmit属性还的onsubmit =“返回logInPass()”

+0

请立即检查 –