0

我有一个表单,我希望管理员填写,然后单击提交并运行 ajax。然而,目前这可行,它也会在页面加载后立即运行,这是我不希望发生的事情。代码如下:

<script src ="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">        </script>
<script src ="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<style type="text/css">

</style>
<script type="text/javascript">
$(document).ready(function(){
  $("form").submit(function() {


$.ajax({
  type: "POST",
  url: "ajaxtest.php",
  async:false,
  data: { product_id: "1" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});

});
});
</script>
</head>

<body>

<form id="frmAJAX" action="" method="POST" >
<input type="hidden" name="product_id" value="<?php echo $product_id; ?>"/>
<p><strong>ID:</strong> <?php echo $product_id; ?></p>
<label name="product_sku" type="text">Item SKU</label>
<input type="text"  value="<?=$product_sku?>" name="product_sku"/><br />
<label name="product_name" type="text">Item</label>
<input type="text" value="<?=$product_name?>"  name="product_name"/><br />


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

<div id="results"></div>
</body>
</html>

我想做的是在页面加载时阻止 ajax 运行,但在使用提交按钮时让它运行。有什么建议么?

4

3 回答 3

1

您可以尝试将提交按钮更改为 type="button",然后将表单提交功能更改为该按钮的单击事件。表单提交逻辑中的这种更改可能有助于解决问题或发现问题所在。例子:

$('#[buttonid]').click(function(){
    //put ajax function here
});
于 2012-06-18T13:36:44.553 回答
0

您可能需要return false在 AJAX 调用结束时。我个人也想尝试@TheAmazingJason 的方式。

于 2012-06-18T13:38:18.570 回答
0

您可以尝试通过提供 id 来选择表单,而不是像这样的标签

$("#frmAJAX").submit(function() {
于 2012-06-18T13:43:30.550 回答