【问题标题】:insert multiple records after calling ajax with bootrap modal使用引导模式调用 ajax 后插入多条记录
【发布时间】:2016-10-15 22:30:14
【问题描述】:

我正在处理 ASP.NET CORE 项目。我在一个视图中使用 Bootstrap 的模式并调用 ajax 在数据库中插入新记录。引导模式对话框中的输入字段、保存和关闭按钮很少。第一次单击保存后,Bootstrap 的模式将消失,并且将在 DB 表中插入一条新记录。但是,当我打开模式并再次单击保存时,它将插入两条记录。

此外,如果我打开模式输入并再次保存,它将插入三个记录。

它似乎总是保留以前的插入实例会话。我已经花了几个小时在上面工作,但仍然失败。

感谢您的帮助和建议。谢谢。

仅供参考:

                     $('#exampleModal').on('show.bs.modal', function (event)                             

                     {
                         var modal = $(this);
                         modal.find('.modal-title').text('New Record');
              modal.find('#saveNewServiceRecord').click(function () {
                             _addActivity();

                         });
                     });


                     $('#exampleModal').on('hidden.bs.modal', function () {
                         var modal = $(this);
                         modal.find('.modal-body input').val('');

                     });





                     function _addActivity() {
                         var data = {
                             ActivityDetails: $('#message-text').val(),
                             TicketID:      id                                                                       
                         };

                             $.ajax({
                                 url: "/Record/Create",
                                 type: "POST",
                            contentType: "application/json;charset=utf-8",
                                 dataType: "json",
                                 data: JSON.stringify(data),
                                 success: function (result) {

                                     _getRecordList();
                                 },
                                 error: function(errormessage) {
                                     alert(errormessage.responseText);
                                 }
                             });
                         }

【问题讨论】:

标签: jquery ajax asp.net-mvc twitter-bootstrap


【解决方案1】:

每次触发show.bs.modal 事件时,您都会附加click 事件。

modal.find('#saveNewServiceRecord').click(function () {
     _addActivity();
}

你需要在show.bs.modal事件之外定义这个click事件,或者你可以在hidden.bs.modal事件中定义unbind它。我建议使用onoff 来解除绑定事件。

或者在下面使用这个:

$('#exampleModal').on('show.bs.modal', function (event)  {
      var modal = $(this);
      modal.find('.modal-title').text('New Record');
})
.on('click', '#saveNewServiceRecord', function() {
    _addActivity()
});
function _addActivity() {
   // your code
}

【讨论】:

  • $('#exampleModal').on('show.bs.modal', function (event) { var modal = $(this); modal.find('.modal-title') .text('新记录'); $('#saveNewServiceRecord').on('click',function () { _addActivity();});}); $('#exampleModal').on('hidden.bs.modal', function () { var modal = $(this); modal.find('.modal-body input').val(''); $ ('#saveNewServiceRecord').off('click'); });
猜你喜欢
  • 2011-09-29
  • 2019-09-12
  • 2011-07-05
  • 1970-01-01
  • 2017-12-15
  • 2015-09-25
  • 2016-07-14
  • 1970-01-01
  • 2015-11-23
相关资源
最近更新 更多