2011-08-25 78 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()">