首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Datatable.js:单击数据表中的编辑按钮时的页面回发

Datatable.js:单击数据表中的编辑按钮时的页面回发
EN

Stack Overflow用户
提问于 2020-03-12 22:46:40
回答 1查看 83关注 0票数 0

脚本

代码语言:javascript
复制
  <script type="text/javascript">

        $(function() {
           // $.noConflict();
            $('#customerGrid').DataTable({
                "columnDefs": [  
                    { "targets": [0], "visible": false }
                ]
            });
        });

        function startEdit(obj) {            
            $(".inline-view").show();
            $(".inline-edit").hide();
            $(obj).closest('tr').find("td .inline-view").hide();
            $(obj).closest('tr').find("td .inline-edit").show();
        }
        function onCancelEdit() {
            $(".inline-view").show();
            $(".inline-edit").hide();            
        }
    </script>

Index.chtml

代码语言:javascript
复制
<thead>
 <th>
      @Html.DisplayNameFor(model => model.FirstName)
 </th>
</thead>


<tbody>
   @foreach (var item in Model)
      {                                                
         <td>
           <div class="inline-view">
               @Html.DisplayFor(modelItem => item.FirstName)
           </div>
           <div class="inline-edit" style='display:none;'>
               @Html.EditorFor(modelItem => item.FirstName)
           </div>
      </td>



 <td>
      <div class="inline-view">
            <button class="editBtn" onclick='startEdit(this);'>Edit</button>
      </div>
      <div class="inline-edit" style="display:none">
            <input class="saveButton" type="submit" id="saveBtn" value="Save" data-eid="@item.CustomerId" />
            <button id="cancelBtn" onclick='oncancelEdit(); return false;'>Cancel</button>
      </div>
</td>
}
</tbody>

我使用的是adminlte 3主题的数据表。每当我单击datatable中的编辑按钮时,如图1所示,它会再次回发页面。未抛出任何错误。不知道我错过了什么。

当我单击编辑按钮时,它应该只是从视图模式切换到编辑模式。这就是我想要做的。上面是相同的代码。

仅供参考:仅在问题中显示/包含了一列,以提供清晰度。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-12 22:50:27

没有type属性的button将充当type="submit",并在单击时尝试提交表单数据。因此,您的页面中会出现回发。尝试将type="button"添加到其中,它将很好地工作,如下所示:

代码语言:javascript
复制
<button type="button" class="editBtn" onclick='startEdit(this);'>Edit</button>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60656511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档