2013-02-02 30 views
0

它会转到正确的if语句,但无论如何它总是提交表单。如果声明为真,我不希望它提交,如果他们按取消,我也不希望它提交。即使点击取消,表单也会始终提交

我也看到很多类似的问题,但他们的答案都没有在这里是正确的解决方案。

我的HTML表单:

<form action="actual link here" method="POST" target="_blank" onsubmit="ordering()"> 

我的JS:

function ordering() { 
    if($('#total').html() == "$0.00") { 
     alert("You have not ordered anything. Please use our contact page if you wish to contact us."); 
     return false; 
    } 
    else { 
     return window.confirm("Are you sure?"); 
    } 
} 
+0

您是否在窗体外部按下按钮? – David

+0

不,它是在那里,对不起,我会发布整个HTML表单的东西,但它是很多项目,我相信我做了这部分权利 –

+0

尝试'.val()'而不是'.html()' – Cjueden

回答

1

为了阻止提交事件,你需要指定return ordering(),如:

<form action="actual link here" method="POST" target="_blank" onsubmit="return ordering()"> 
+0

哇,真棒解决方案,非常感谢 –

0

你可以改变按钮div和附加功能,它的onclick属性:

<div id='submitButton' onclick="ordering()"></div> 

而且对你的功能做一个小改动:

function ordering() { 
    if($('#total').html() == "$0.00") { 
    alert("You have not ordered anything. Please use our contact page if you wish to contact us."); 
    } 
    else if(window.confirm("Are you sure?")) { 
    $('form').submit(); 
    } 
} 

如果你不介意写一个div的样式,使它看起来像一个按钮。

+0

这是一个工作,我不我想我想通过 –

0

正如你已经在使用jQuery,您将不必添加一个内联“的onsubmit = .... 'javascript on your page,just use this:

给表单一个ID(或一个类),使它更容易使用jQuery进行选择;

<form id='myform' action="actual link here" method="POST" target="_blank"> 

<script> 
$(document).ready(function() { 

    $('#myform').on('submit', function(e) { 
     if($('#total').html() == "$0.00") { 
       e.preventDefault(); 
      alert("You have not ordered anything. Please use our contact page if you wish to contact us."); 
      return false; 
     } else { 
      return window.confirm("Are you sure?"); 
     } 
    } 
}); 
</script> 
相关问题