为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Ajax 提交表单两次

使用 Ajax 提交表单两次

侃侃无极 2023-09-21 10:46:19
我尝试使用 Ajax 提交表单,但它提交了输入的值两次。您能帮我防止这个问题吗?我尝试了之前问题中的一些建议,但没有成功。谢谢网页代码:<form id="ratingForm" method="POST">    <div class="form-group">        <h4>Rate this product</h4>        <!-- Start Star -->        <button type="button" class="btn btn-warning btn-sm rateButton" aria-label="Left Align">          <span class="glyphicon glyphicon-star" aria-hidden="true"></span>        </button>                <button type="button" class="btn btn-default btn-grey btn-sm rateButton" aria-label="Left Align">          <span class="glyphicon glyphicon-star" aria-hidden="true"></span>        </button>                <button type="button" class="btn btn-default btn-grey btn-sm rateButton" aria-label="Left Align">          <span class="glyphicon glyphicon-star" aria-hidden="true"></span>        </button>                <button type="button" class="btn btn-default btn-grey btn-sm rateButton" aria-label="Left Align">          <span class="glyphicon glyphicon-star" aria-hidden="true"></span>        </button>                <button type="button" class="btn btn-default btn-grey btn-sm rateButton" aria-label="Left Align">          <span class="glyphicon glyphicon-star" aria-hidden="true"></span>        </button>        <!-- End Star -->        <input type="hidden"  id="rating" name="rating" value="1">        <input type="hidden"  id="itemId" name="itemId" value="<?php echo $_GET['id']; ?>">        <input type="hidden" name="action" value="saveRating">    </div>          <div class="form-group">        <!--Comment Start-->        <label for="usr">Title*</label>        <input type="text"  id="title" name="title" required>    </div>    <div class="form-group">        <label for="comment">Comment*</label>        <textarea rows="5" id="comment" name="comment" required></textarea>    </div>    <div class="form-group">        <button type="submit" class="btn btn-info" id="saveReview">Save Review</button>    </div>     <!--Comment End-->          </form>
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

使用 POST 方法,您的表单在重新加载时可能会第二次提交,window.location.reload();您可以简单地redirect使用 ajax 调用成功时的页面window.location.href = "http://yourwebpage.php";window.location.replace("http://yourwebpage.php");



查看完整回答
反对 回复 2023-09-21
?
倚天杖

TA贡献1828条经验 获得超3个赞

你可以尝试下面的代码吗


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Js Check</title>

<script src="https://code.jquery.com/jquery-3.5.1.min.js" language="javascript"></script>

</head>


<body>

<div id="wrapper">

  <form id="ratingForm" method="POST">

    <div class="form-group">

      <h4>Rate this product</h4>

      <!-- Start Star -->

      <button type="button" class="btn btn-warning btn-sm rateButton" aria-label="Left Align"> <span class="glyphicon glyphicon-star" aria-hidden="true"></span> </button>

      <button type="button" class="btn btn-default btn-grey btn-sm rateButton" aria-label="Left Align"> <span class="glyphicon glyphicon-star" aria-hidden="true"></span> </button>

      <button type="button" class="btn btn-default btn-grey btn-sm rateButton" aria-label="Left Align"> <span class="glyphicon glyphicon-star" aria-hidden="true"></span> </button>

      <button type="button" class="btn btn-default btn-grey btn-sm rateButton" aria-label="Left Align"> <span class="glyphicon glyphicon-star" aria-hidden="true"></span> </button>

      <button type="button" class="btn btn-default btn-grey btn-sm rateButton" aria-label="Left Align"> <span class="glyphicon glyphicon-star" aria-hidden="true"></span> </button>

      <!-- End Star -->

      

      <input type="hidden"  id="rating" name="rating" value="1">

      <input type="hidden"  id="itemId" name="itemId" value="<?php echo $_GET['id']; ?>">

      <input type="hidden" name="action" value="saveRating">

    </div>

    <div class="form-group"> 

      <!--Comment Start-->

      <label for="usr">Title*</label>

      <input type="text"  id="title" name="title" required>

    </div>

    <div class="form-group">

      <label for="comment">Comment*</label>

      <textarea rows="5" id="comment" name="comment" required></textarea>

    </div>

    <div class="form-group">

      <button type="submit" class="btn btn-info" id="saveReview">Save Review</button>

    </div>

    <!--Comment End-->

  </form>

</div>

<script>

jQuery(document).ready(function($) {

        

        $('#ratingForm').on('submit', function(event){

          event.preventDefault();

          event.stopImmediatePropagation();

            var formData = $(this).serialize();

            $.ajax({

                type : 'POST',

                dataType: "json",   

                url : 'action.php',                 

                data : formData,

                success:function(response){

                console.log(response);

                    if(response.success == 1) {

                        $("#ratingForm")[0].reset();

                        window.location.reload();

                    } 

                }

            }); 

        });

});

</script>

</body>

</html>



查看完整回答
反对 回复 2023-09-21
  • 2 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信