如何通过jquery禁用表单的操作?

时间:2012-01-12 13:53:59

标签: php jquery html

是否有可能在某种情况下禁用提交表单? 这是我的示例代码

        <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
        <input type="hidden" name="cmd" value="_cart" />
        <input type="hidden" name="upload" value="1" />
        <input type="hidden" name="business" value="test@gmail.com" />
        <?php
          $i = 1;
          foreach($_SESSION['cart'] as $id => $qty):
          $product = $myCart->getProduct($id);

        ?>
        <input type="hidden" name="item_name_<?php echo $i; ?>" value="<?php echo $product['ProductName']; ?>">
        <input type="hidden" name="item_number_<?php echo $i; ?>" value="<?php echo $product['ProductID']; ?>">
        <input type="hidden" name="amount_<?php echo $i; ?>" value="<?php echo $product['ProductOverridePrice']; ?>">
        <input type="hidden" name="quantity_<?php echo $i; ?>" value="<?php echo $qty; ?>">
      <?php
        $i++;
        endforeach;
      ?>
        <input type="hidden" name="currency_code" value="USD">
        <input type="hidden" name="lc" value="US">
        <input type="hidden" name="rm" value="2">
        <input type="hidden" name="shipping_1" value="<?php echo $shipping; ?>">
        <input type="hidden" name="return" value="http://testsite/thankyou.php">
        <input type="hidden" name="cancel_return" value="http://testsite/">
        <input type="hidden" name="notify_url" value="http://testsite/paypal.php">
        <input type="image" src="images/shopping-cart/check-out-btn.png" name="pay now" value="pay" />
        </form>

让我说我有一个条件,如果表格应该“不”提交 $ _SESSION ['cart']是空的,该怎么做?

我尝试了底部的一个答案..我把代码放在文件的底部,就像这样

<?php
if(!is_array($_SESSION['cart']) && empty($_SESSION['cart'])):
?>
<script>
$('form').on('submit', function(e){
   e.preventDefault();
});
</script>
<?php
endif;
?>

无法正常工作..当我按下结帐按钮时,它仍然会进入paypal沙盒页面

4 个答案:

答案 0 :(得分:2)

onsubmit="return false"$('form').submit(function(){return false;});

答案 1 :(得分:1)

$('form').on('submit', function (e) {
    e.preventDefault();
});

...比return false;更正确。至少,只要它停止提交我们正在谈论的表格。

答案 2 :(得分:1)

只需使HTML输出依赖于$ _SESSION ['cart']状态:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" <?php if(empty($_SESSION['cart'])){echo "onsubmit=\"return false;\""} ?>>...

如果您特别想要涉及jquery,只需给表单一个id并与上面相同,但是使用js:

<?php 
if(empty($_SESSION['cart'])){
   echo "
     $('#form_id').submit(function() {
        return false;
     });
   "
}
?>

答案 3 :(得分:0)

可以通过javascript完成,将$ _SESSION ['cart']的值传递给java脚本函数,并在表单提交上调用,如下所示:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" onSubmit="return stop_form_submit("<?php  echo $_SESSION['cart']; ?>");">

然后在javascript中,

function stop_form_submit(cart_val) {
    if(!cart_val) { 
       return false;
    }

}