2011-08-25 105 views
3

好吧,我相當新的jQuery和JavaScript的一般。我有一個表單,我想要做的事情是讓表單運行一個函數來確保所有內容都存在,並且所有變量都是正確的,然後提交。我已經使用onclick值提交按鈕,並讓它運行使用preventDefault()的函數。我不知道如果我正確使用它,但它似乎並沒有工作。這就是我所擁有的,當你點擊提交時,即使if語句是假的,它也會提交。preventDefault()提交表格

function checkSubmitStatus() { 
$("#myform").submit(function(event){ 
if(whatever==true) 
{ 
event.preventDefault(); 
} 


<input type="submit" name="submit" value="Submit" onClick="checkSubmitStatus()"> 

謝謝!

回答

9

通過在checkSubmitStatus()函數中放入$("#myform").submit(...),您在點擊按鈕並且表單已經提交之後附加提交處理程序。試試這個:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#myform").submit(function(event){ 
    if(whatever) { 
     event.preventDefault(); 
    } 
    }); 
}); 
</script> 

<form id="myform"> 
    <input type="submit" name="submit" value="Submit"> 
</form> 
+0

Thnaks,您的詳細回答是我需要什麼,你不僅幫我解決我的問題,但也意識到一個問題,我沒有不通知!謝謝! – Osman

8

變化

<input type="submit" name="submit" value="Submit" onClick="checkSubmitStatus()"> 

<input type="submit" name="submit" value="Submit" > 

,改變你的JavaScript來

$("#myform").submit(function(event){ 
    if(whatever==true) 
    { 
     event.preventDefault(); 
    } 
}); 
+1

您不能將'onSubmit'附加到輸入標籤,只能附加到表單標籤。 – Blazemonger

+0

現在編輯。感謝您的警告! – genesis

3

你可以只下降了checkSubmitStatus()功能。

$("#myform").submit(function(event){ 
    if(whatever == true) { 
    event.preventDefault(); 
    } 
}); 

而且降本:

onClick="checkSubmitStatus()" 
1

在onclick事件處理程序,如果返回false表單不會提交。試着這樣做:

function checkSubmitStatus() { 
    if(validationSuccess==true) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

<input type="submit" name="submit" value="Submit" onClick="return checkSubmitStatus()"> 
1

我會重構這個咯...

function checkSubmitStatus() { 
    if(whatever==true) { 
      return false; 
    } 
    return true; 
} 

<input type="submit" name="submit" value="Submit" onClick="return checkSubmitStatus()">