javascript - 提交并打开成功消息弹框

标签 javascript html ajax http-post

我是 Javascript 新手,所以我尝试提交并打开 Success Messege 弹出框,当前发送到 ajax 的数据正在工作,然后我需要打开带有复选框值的成功消息。成功提交后,我该怎么做才能使模型弹出带有复选框值的确切方法?

document.addEventListener("DOMContentLoaded", function(e) {
  var a = document.getElementById("alecaddd-testimonial-form");
  a.addEventListener("submit", function(e) {
    e.preventDefault(), o();
    var r = {
      name: a.querySelector('[name="name"]').value,
      email: a.querySelector('[name="email"]').value,
      message: a.querySelector('[name="message"]').value,
      nonce: a.querySelector('[name="nonce"]').value
    };
    if (r.name)
      if (/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(r.email).toLowerCase()))
        if (r.message) {
          var t = a.dataset.url,
            s = new URLSearchParams(new FormData(a));
          a.querySelector(".js-form-submission").classList.add("show"), fetch(t, {
            method: "POST",
            body: s

          }).then(function(e) {
            return e.json()
          }).catch(function(e) {
            o(), a.querySelector(".js-form-error").classList.add("show")
          }).then(function(e) {
            o(), 0 !== e && "error" !== e.status ? (a.querySelector(".js-form-success").classList.add("show"), a.reset()) : a.querySelector(".js-form-error").classList.add("show")
          })
        } else a.querySelector('[data-error="invalidMessage"]').classList.add("show");
    else a.querySelector('[data-error="invalidEmail"]').classList.add("show");
    else a.querySelector('[data-error="invalidName"]').classList.add("show")
  })
})
<div class="package-container">
  <form id="alecaddd-testimonial-form" class="zon-form" action="#" method="post" data-url="<?php echo admin_url('admin-ajax.php'); ?>">
    <div id="clmn3">

      <div class="cnt">
        <div class="row" style="background: url(<?php print $picture; ?>);">
          <h3>
            <?php echo esc_attr( $budget ); ?>
          </h3>
          <label class="zon-container"><p>2 Nights 3 Days: 3399</p>
      <input class="chb" type="checkbox" name="package[]" value="3000" checked="checked">
      <span class="checkmark"></span>
    </label>
          <label class="zon-container"><p>3 Nights 4 Days : 4399</p>
      <input  class="chb"  type="checkbox" name="package[]" value="4000">
      <span class="checkmark"></span>
    </label>
          <label class="zon-container"><p>4 Nights 5 Days : 5399</p>
      <input class="chb"  type="checkbox" name="package[]" value="5000">
      <span class="checkmark"></span>
    </label>
        </div>
      </div>



      <div class="zon-input-fields">
        <div class="field-container">
          <input type="text" class="field-input" placeholder="Adult" id="name" name="name" required>
          <small class="field-msg error" data-error="invalidName">Your Name is Required</small>
        </div>

        <div class="field-container">
          <input type="text" class="field-input" placeholder="Adult" id="adult" name="adult" required>
          <small class="field-msg error" data-error="invalidName">Your Name is Required</small>
        </div>

        <div class="field-container">
          <input type="email" class="field-input" placeholder="Child" id="email" name="email" required>
          <small class="field-msg error" data-error="invalidEmail">The Email address is not valid</small>
        </div>

        <div class="field-container">
          <input type="text" class="field-input" placeholder="infant" id="infant" name="message" required>
          <small class="field-msg error" data-error="invalidName">Your Name is Required</small>
        </div>

        <div class="field-container">
          <input type="date" class="field-input" placeholder="date" id="date" name="date" required>
          <small class="field-msg error" data-error="invalidEmail">The Email address is not valid</small>
        </div>


        <div class="field-container">
          <input type="phone" class="field-input" placeholder="phone" id="phone" name="phone" required>
          <small class="field-msg error" data-error="invalidEmail">The Email address is not valid</small>
        </div>

        <div class="field-container">
          <input type="price" class="field-input" placeholder="price" id="price" name="price" required>
          <small class="field-msg error" data-error="invalidEmail">The Email address is not valid</small>
        </div>



        <div class="field-container">

          <input type="submit" name="submit" class='btn'>
        </div>

        <div class="field-container">
          <small class="field-msg js-form-submission">Submission in process, please wait&hellip;</small>
          <small class="field-msg success js-form-success">Message Successfully submitted, thank you!</small>
          <small class="field-msg error js-form-error">There was a problem with the Contact Form, please try again!</small>
          <input type="hidden" name="action" value="submit_testimonial">
          <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(" testimonial-nonce ") ?>"> </form>
  </div>
  </div>
  </div>

一如既往,我们非常感谢任何帮助。

最佳答案

移动

a.querySelector(".js-form-submission").classList.add("show")

之前

return e.json()

关于javascript - 提交并打开成功消息弹框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52602186/

相关文章:

javascript - 使用jquery获取descent li anchor 标记文本

javascript - 如何更改属于 JS/jQuery 中特定行的按钮文本?

JavaScript:检查cookie是否设置,并在刷新时将图像src更改为随机并且cookie不会过期

html - CSS-文本向上移动

javascript - 使用 anchor 时使用后退按钮刷新

javascript - 通过 AJAX 加载渲染的 HTML 来应对 XSS 的安全做法不好吗?

javascript - 如何使这个谷歌表格脚本代码更短/更快?

javascript - 从显示 :none to visible on click 切换类

html - 徽章不是完美的三 Angular 形

jquery - 如何用jquery中的onchange事件触发daterangepicker事件?