2014-01-14 114 views
0

我加入了驗證,但形式仍然提交腳本返回即使假表格後仍提交返回false

表單提交

<form action=payment.php method=POST name=UserForm id=UserForm onsubmit="return check(this);return false;">  

的Javascript

function check(event) {  

$('input').each(function() { 
    if(!$(this).val()){ 
     alert('Some fields are empty'); 
     return false; 
    } 
    }); 


    } 
+4

那第二回虛僞永遠不能達到。 – epascarello

+0

怎樣才能'返回false;'在另一個'return'後面執行? –

+1

您不會從check()方法返回false。每個循環內的'return false'等價於'break;'語句 –

回答

4

return false;內的jQuery each將無法工作。你正在返回一個匿名函數,不在function check(event)之內。 你需要做的是使用一個標誌。

function check(event) { 
    var errorFlag = false; 
    $('input').each(function() { 

     if(!$(this).val()){ 
      alert('Some fields are empty'); 
      errorFlag = true; 
     } 

    }); 

    return !errorFlag; 
} 
0

return check(this);return false;

第二復位return false不可達。此外,警報語句會阻止其他代碼中的返回 - 並且check函數不會返回任何內容。

function check(event) {  
$('input').each(function() { 
    if(!$(this).val()){ 
     alert('Some fields are empty'); //blocking here 
     return false; // this isn't the return of the check function 
    } 
    }); 
} 

你應該這樣做

function check(event) {  
    var result = true; 
    $('input').each(function() { 
    if(!$(this).val()){ 
     result = false; 
    } 
    }); 

    return result; 
} 
相關問題