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

次のようなタグではなく、IDを指定してフォームを選択してみてください。

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

return falseAJAX 呼び出しの最後に必要になる場合があります。また、個人的には、@TheAmazingJason の方法を試してみたいと思います。

于 2012-06-18T13:38:18.570 に答える