2015-10-22 129 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

請立即檢查 –