【问题标题】:How to do popup input form that will not reset the page after saving?如何做保存后不会重置页面的弹出输入表单?
【发布时间】:2021-02-03 16:22:11
【问题描述】:

我有一个功能可以单击按钮,然后会弹出输入表单并显示卡片。但是点击按钮后,卡片会随着弹出的表单一起弹出,然后当我保存表单时,卡片会被删除。

在我点击按钮之前:

点击按钮后:

当我点击保存按钮时:

$(function(){
      $('button').on('click', function() {
        $('.popup').css({display:'flex'})

        $('<div class="card"><h1>Budget</h1><div class="card-body"><h5 class="card-title"><a href="#">Month 1</a></h5><a href="#" class="btn btn-primary">Add Daliy Expenses</a></div></div>').insertBefore('.card:last');
      })
    })
.popup {
    background: rgba(0, 0, 0, 0.6);
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    display: none;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.popup-content {
    height: 250px;
    width: 500px;
    background: #fff;
    padding: 20px;
    border-radius: 5px;
    position: relative;
}

.sub {
    background: #fff;
    padding: 10px 15px;
    color: #34495e;
    font-weight: bolder;
    font-size: 18px;
    border-radius: 5px;
    box-shadow: 6px 6px 29px -4px rgba(0, 0, 0, 0.75);
    margin-top: 25px;
    text-decoration: none;
    transition: 0.4s;
}

input {
    margin: 20px auto;
    display: block;
    width: 50%;
    padding: 8px;
    border: 1px solid gray; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="flex-box-tabs"></div>
        <div class="tab-panels">
      <div id="panel1" class="panel active">
        <div class="flex-box-panel">
          <div class="flex-box-card">
            <div class="card">
              <h1>Budget</h1>
              <div class="card-body">
                <h5 class="card-title"><a href="#">Month 1</a></h5>
                <a href="#" class="btn btn-primary">Add Daliy Expenses</a>
              </div>
            </div>
            <div class="card">
              <div class="pos">
                <button class="round-button">&#43;</button>
              </div>
            </div>
          </div>
        </div>
      </div>
     </div>
    </div>

  <div class="popup">
    <div class="popup-content">
      <form method="post">
        <input type="text" placeholder="Budget">
        <input type="submit" name="Save" value="submit" class="sub">
      </form>
    </div>
  </div>

有什么方法或功能可以先弹出表单,保存后显示卡片?

【问题讨论】:

  • 调查 ajax 表单提交。你用什么来处理from?
  • 可以添加 CSS 吗?
  • @AezignSpace,完成
  • @JonP,所以 ajax 可以吗?我现在将学习ajax,希望能解决我的问题。谢谢!

标签: html jquery


【解决方案1】:

您只需添加这一行 event.preventDefault(); 并从函数接收事件。

$(function(){
      $('button').on('click', function(event) { <--- here
         event.preventDefault();  <--- here
        $('.popup').css({display:'flex'})

        $('<div class="card"><h1>Budget</h1><div class="card-body"><h5 class="card-title"><a href="#">Month 1</a></h5><a href="#" class="btn btn-primary">Add Daliy Expenses</a></div></div>').insertBefore('.card:last');
      })
    })

【讨论】:

  • 请注意,这将阻止表单提交/保存
  • 相反,如果您需要在不重新加载页面的情况下将数据发送到某处,您可以执行 AJAX 请求,可能是 POST。例如保存到数据库。
【解决方案2】:

不使用表单提交,您可以简单地使用 AJAX 进行操作而无需重新加载页面...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    相关资源
    最近更新 更多