2012-05-25 58 views
0
<script type="text/javascript"> 
    function claim() 
    { 
     var c = confirm('You sure?'); 

     if(c) 
     { 
      var password=prompt("Please mention pw",""); 
      if (password!=null && password!="") 
       { 
        $.post("/claim/<?php echo $refnr; ?>", { partner_pwd: password }, 
         function(data) { 
          alert(data); 
          if(data == '1') 
          { 
           return true; 
          }else{ 
           return false; 
          } 
         }); 
       }else{ 
       return false; 
       } 
     }else{ 
      return false; 
     } 
    } 
</script> 

當測試我到了請提pw,我進入後按下確定它提交我的表單,而不是使$ .post,只提交我的表單,如果數據==' 1'(return true)

claim()在我的提交按鈕中被調用;

<input type="submit" name="submit" onclick="return claim()"; value="Submit" /> 

我試圖警告調試和像我想,當它讀取$。員額(),我只希望它提交(通過返回true),如果數據是1

它會自動提交它是真實的
+0

請檢查您的'$ .post'請求後,您不返回'false'。 – VisioN

回答

0

return truereturn false在你的$.post請求裏面什麼也不做,只是返回那個回調。它不會阻止表單提交。相反,請嘗試完全阻止提交,然後如果您希望提交發生,請觸發它。

function claim() { 
    var c = confirm('You sure?'); 

    if (!c) { 
     return false; 
    } 

    var password = prompt("Please mention pw", ""); 
    if (password != null && password != "") { 
     $.post("/claim/<?php echo $refnr; ?>", { 
      partner_pwd: password 
     }, function(data) { 
      alert(data); 
      if (data == '1') { 
       $("#myform").submit(); 
      } 
     }); 
    } 
    return false; 
}​ 

注意我們如何總是return false這一職能不分的有效性。如果它有效,我們直接觸發表單的提交事件。

0

您的onclick方法提交不起作用,因爲表單將被提交。

您應該連接的形式 上設置的聽衆在onsubmit();事件或另一種解決方案是在把onsubmit屬性與它的JavaScript函數,並從你的JavaScript與$('#form').submit();功能提交表單。

1

那麼,如果你在網站上放置一個表格,它的目標就是提交表格。

http://api.jquery.com/submit/(向下滾動到開始Example: If you'd like to prevent forms from being submitted unless a flag variable is set, try:非常最後一個例子)

正如上面的鏈接說明,你應該改變形式的行動,而不是一些頁面,並完成類似action="javascript:claim()"。我認爲這應該工作。