javascript - 使用 JQuery .find() 访问 Bootstrap Modal 内的输入文本字段

标签 javascript jquery html twitter-bootstrap-3

我正在尝试访问输入框中输入的文本,但它始终返回空字符串

有人可以帮忙解决这个问题吗?

$('#my_modal').on('show.bs.modal', function(e) {
 
  var id = $(e.relatedTarget).data('id');
  var txt = $(this).find('input[id="txt"]').val();

  $(this).find('button[id="save"]').click(function() {
    alert(id);
    alert(txt);
   });
  
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

<a href="#my_modal" data-toggle="modal" data-id="1">Edit</a>

<div class="modal" id="my_modal">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
        <h4 class="modal-title">Click Save!</h4>
      </div>

      <div class="modal-body">
        <div class="form-group">
          <label for="txt" class="control-label">Text:</label>
          <input id="txt" class="form-control" autofocus="autofocus" placeholder="1000"/>
        </div>
     </div>

     <div class="modal-footer">
       <button id="save" type="save" class="btn btn-primary" data-dismiss="modal">Save</button>
       <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
     </div>
   </div>
 </div>
</div>

最佳答案

您正在尝试访问模态显示上的输入值,而实际上该值是空的。您应该访问按钮的点击处理函数内的值。

请注意: this 根据它们执行的上下文而有所不同,因此模式点击和按钮 click 有自己的 this。为了保留预期的 this (模态),您可以将其存储在变量中,然后使用它。

$('#my_modal').on('show.bs.modal', function(e) { 
  var id = $(e.relatedTarget).data('id');
  var that = $(this);
  $(this).find('button[id="save"]').click(function() {
    var txt = that.find('input[id="txt"]').val();
    alert(id);
    alert(txt);
   });
  
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

<a href="#my_modal" data-toggle="modal" data-id="1">Edit</a>

<div class="modal" id="my_modal">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
        <h4 class="modal-title">Click Save!</h4>
      </div>

      <div class="modal-body">
        <div class="form-group">
          <label for="txt" class="control-label">Text:</label>
          <input id="txt" class="form-control" autofocus="autofocus" placeholder="1000"/>
        </div>
     </div>

     <div class="modal-footer">
       <button id="save" type="save" class="btn btn-primary" data-dismiss="modal">Save</button>
       <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
     </div>
   </div>
 </div>
</div>

关于javascript - 使用 JQuery .find() 访问 Bootstrap Modal 内的输入文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59349232/

相关文章:

javascript - 使页面上的所有链接都添加图像或效果

javascript - 我如何打开 Bootstrap 模态 onbeforeunload 功能,

javascript - HTML5 JS fillRect() 奇怪的行为

javascript 代码和 zindex

javascript - 如何将 json 写在单独的行上

javascript - 基本 While 循环查询 - 为什么记录 "1"?

javascript - 如何在不使用 HTML <form> 标签的情况下发送 AJAX 表单

javascript - jQuery.click() 与 onClick

javascript - 使用 Node js更新mongodb中的单个文档

javascript - 是否可以在现有服务器上使用服务器端渲染?