【问题标题】:The form code does not work in firefox (submit and alert)表单代码在 Firefox 中不起作用(提交并提醒)
【发布时间】:2016-12-16 06:15:30
【问题描述】:

$(document).ready(function () {
  $("#submitButton").click(function () {
    $.post($("#payment").attr("action"), $("#payment").serialize(),
           function () {
      alert('Form 1 submitted');
    });

    $.post($("#normal").attr("action"), $("#normal").serialize(),
           function () {
      alert('Form 1 submitted');
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="normal" action="send.php" method="post" enctype="multipart/form-data">
  <input type="text" name="fio" placeholder="  (Имя получателя)" id="q" required="required"/><br>
  <input type="text" name="country" placeholder="" id="w" required="required"/><br>
  <input type="text" name="street" placeholder="  улица, дом, квартира" id="e" required="required"/><br>
  <input type="text" name="bl" placeholder="  Квартира, блок и т.п. (при необходимости)" id="o"/><br>
  <input type="text" name="city" placeholder="" id="r" required="required"/><br>
  <input type="text" name="region" placeholder="" id="t" required="required"/><br>
  <input type="number" name="index" placeholder="" id="y" required="required"/><br>
  <input type="number" name="mobnumber" placeholder="  В международном формате" id="u" required="required"/><br></form>

<form id="payment" name="payment" method="post"    action="https://sci.interkassa.com/" enctype="utf-8">
  <input type="hidden" name="ik_co_id" value="58515c6a3c1eafd5708b4569" />
  <input type="hidden" name="ik_pm_no" value="ID_4233" />
  <input type="hidden" name="ik_am" value="382" />
  <input type="hidden" name="ik_cur" value="UAH" />
  <input type="hidden" name="ik_desc" value="Event Description" />
  <input type="hidden" name="ik_act" value="payways" />
  <input type="hidden" name="ik_pw_off" value="yandexmoney" />
  <input type="hidden" name="ik_suc_u" value="https://www.yandex.ua/" />
  <input type="hidden" name="ik_fal_u" value="https://www.yandex.ua/" />
  <input type="hidden" name="ik_pnd_u" value="https://www.yandex.ua/" />
  <input type="hidden" name="ik_exp" value="2016-12-15" />
  <input type="hidden" name="ik_ltm" value="3600" />
  <input type="hidden" name="ik_loc" value="ru" />
  <input type="hidden" name="ik_enc" value="utf-8" />
  <input type="hidden" name="ik_int" value="web" />
  <input type="hidden" name="ik_am_t" value="payway" />
  <input type="submit" id="submitButton" value="ОПЛАТИТЬ" id="sub"/></form>

此代码适用于除 Firefox 之外的所有浏览器(表单发送成功、重定向有效、网站要求确认警报)。但是firefox立即重定向到该站点而不发送表单并确认警报。请帮忙,我在ru互联网上找不到答案。请帮帮我。 附言对不起我的英语,我使用 GOOGLE 翻译器,但我尝试使文本可读。提前谢谢你

【问题讨论】:

    标签: javascript jquery html ajax firefox


    【解决方案1】:

    您必须将输入类型 submit 更改为 button,因为您使用代码中的 ajax 请求发送数据:

    <input type="button" id="submitButton" value="ОПЛАТИТЬ" id="sub"/></form>
    

    或者您可以使用e.preventDefault()return false 来阻止提交,例如:

    $(document).ready(function () {
        $("#submitButton").click(function (e) {
            e.preventDefault();
    
            $.post($("#payment").attr("action"), $("#payment").serialize(),
              function () {
                  alert('Form 1 submitted');
              });
    
            $.post($("#normal").attr("action"), $("#normal").serialize(),
              function () {
                  alert('Form 1 submitted');
              });
        });
    });
    

    希望这会有所帮助。

    【讨论】:

    • 你不需要preventDefault()return false;。他们做同样的事情,所以只选择一个。
    【解决方案2】:

    表单内的提交按钮将触发其动作。尝试将其放在表单之外。

    <form id="payment" name="payment" method="post"    action="https://sci.interkassa.com/" enctype="utf-8">
    ...
    <input type="hidden" name="ik_am_t" value="payway" />
    </form>
    
    <input type="submit" id="submitButton" value="ОПЛАТИТЬ" id="sub"/>
    

    【讨论】:

      猜你喜欢
      • 2015-09-06
      • 1970-01-01
      • 2016-11-21
      • 2017-06-10
      • 2021-04-21
      • 1970-01-01
      • 2012-09-28
      • 2016-04-06
      相关资源
      最近更新 更多