【问题标题】:Bootstrap Modal - Pass data into Modal using JavascriptBootstrap Modal - 使用 Javascript 将数据传递到 Modal
【发布时间】:2016-03-27 05:51:56
【问题描述】:

我想使用 java 脚本将选择/下拉数据传递到引导模式。我正在使用模态作为确认消息。

我的选择/下拉菜单是,

<select class="form-control" id="project" name="project_id">
   <option value="1"> ABCD </option>
   <option value="2"> EFGH </option>
   <option value="3"> IJKL </option>
   <option selected="selected" value="#">Please Select</option>
</select>

我正在使用 javascript 调用 Bootstrap 模态,如下所示,

$('#project').change(function(){
   var e       = document.getElementById("project");
   var p_id    = e.options[e.selectedIndex].value;
   var p_name  = e.options[e.selectedIndex].text;

   $('#myModal').modal('show');
});

Bootstrap Modal 如下,

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel"></h4>
      </div>
      <div class="modal-body modal-mt-hgt">
        <form action="" method="post">
          <p> Are you sure to comment on <b id="p_name">...PROJECT NAME HERE</b> </p>
          Enter Your Comment : <textarea rows="3"></textarea>
          <input type="hidden" name="country" value="">
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Add Task</button>
      </div>
      <?= form_close(); ?>
    </div>
  </div>
</div>

我想要做的是将 var p_id 传递/显示到隐藏字段并在模态的&lt;b id="p_name"&gt;&lt;/b&gt; 旁边显示 var p_name。

进一步p_id、p_name可以在用户使用上面的javascript函数从选择/下拉菜单中选择任何选项时获得,只有我需要做的事情是如何在 Modal 上显示 Project Name 并将 p_id 分配到 Modal 的隐藏字段中

最好的问候

【问题讨论】:

标签: javascript html twitter-bootstrap bootstrap-modal


【解决方案1】:

我对这一切都很陌生,所以这可能不是最好的解决方案,但它是一个解决方案。

$('#project').on('change', function() {
    var p_id = $(this).val();
    var p_name  = $(this).find(':selected').text();

    $('#myModal').on('show.bs.modal', function () 
    {
        $(this).find('#p_name').text(p_name);
        $(this).find('#p_id').val(p_id);
    });

    $('#myModal').modal('show');
});

您需要在隐藏字段中添加一个类或 ID,以便识别它。上面我给了它一个 p_id 的 ID。

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="myModalLabel"></h4>
      </div>
      <div class="modal-body modal-mt-hgt">
        <form action="" method="post">
          <p> Are you sure to comment on <b id="p_name">...PROJECT NAME HERE</b> </p>
          Enter Your Comment : <textarea rows="3"></textarea>
          <input type="hidden" id="p_id" name="country" value="">
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Add Task</button>
      </div>
      <?= form_close(); ?>
    </div>
  </div>
</div>

我认为这一切都可以自我解释,但如果不是,我们添加检查以查看项目 Dropdown 何时更改,然后我们使用 $(this) 变量分配所选项目的值和文本,以表明它在 #项目下拉 ID。

接下来,我们添加一个监听器来查看模态框何时显示,然后我们可以根据需要操作模态框。在本例中,我们设置 p_name 文本并设置 p_id 的值。

【讨论】:

  • 在这里使用show.bs.modal 事件可能是正确的方法,但是您正在添加侦听器,只要change 事件在#project 上触发,这可能不是一个好主意.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多