在 Laravel 中单击模态后如何获取标签的 data-href 值

Posted

技术标签:

【中文标题】在 Laravel 中单击模态后如何获取标签的 data-href 值【英文标题】:How to get the data-href value of a tag after modal is clicked in Laravel 【发布时间】:2021-01-01 19:10:45 【问题描述】:

我有一个在单击编辑按钮时打开的模态现在我希望在单击模态时打开模态的 data-href 的值在模态体内回显我该怎么做

<a href="javascript:void(0);" data-href=" url('admin/product_edit/'.$cat->id) " class="edit_product btn btn-sm btn-primary" data-toggle="modal" data-target="#editModal"> Edit</a>

【问题讨论】:

添加onClick函数并传递this.data-href 【参考方案1】:

您可以使用event.relatedTarget 函数有更多dynamic 方法来获取data-attributes

您确实需要在此处使用内联 onclick 函数,这可以使用本机 jQuery 引导函数(如 show.bs.modal)轻松完成,并在点击时获取 a 数据属性并在模态中显示。

$("#editModal").on('show.bs.modal', function(event) 
  var button = $(event.relatedTarget) //Button that triggered the modal
  var getHref = button.data('href') //get button href
  $('#href').text(getHref) //show in the modal
)

现场工作演示:

$("#editModal").on('show.bs.modal', function(event) 
  var button = $(event.relatedTarget) //Button that triggered the modal
  var getHref = button.data('href') //get button href
  console.log(getHref) // url('admin/product_edit/'.$cat->id) 
  $('#href').text(getHref) //show in the modal
)
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

<a href="javascript:void(0);" data-href=" url('admin/product_edit/'.$cat->id) " class="edit_product btn btn-sm btn-primary" data-toggle="modal" data-target="#editModal"> Edit</a>

<!-- Modal -->
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <span id="href"></span>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>

【讨论】:

【参考方案2】:

如果你使用 jQuery,那么你可以这样做

let hrefVal = null

$('.edit_product').click(function ()  hrefVal = $(this).data('href') )

【讨论】:

【参考方案3】:

你可以这样做

<a href="javascript:void(0);" data-href="/sample/url" class="edit_product btn btn-sm btn-primary" data-toggle="modal" data-target="#editModal" onclick='process(this)'> Edit</a>

function process(inp) 
    console.log(inp.getAttribute('data-href'));

【讨论】:

使用 bootstrap 和 jQuery 时不需要使用内联函数 - 见我的 asnwer。

以上是关于在 Laravel 中单击模态后如何获取标签的 data-href 值的主要内容,如果未能解决你的问题,请参考以下文章

vc++6.0如何实现在模态对话框编辑框中输入数据,单击确定按钮将数据添加到组合框按钮中!

当我在 Laravel livewire 上单击事件时获得 404 模态

在 Laravel 中显示来自 JQuery 的模态?

单击vue组件中的保存按钮后如何关闭模态?

如何在laravel中以模态运行控制器函数

ansys模态分析后如何看云图