【问题标题】:Twitter bootstrap : How to display popup value in text-boxTwitter bootstrap:如何在文本框中显示弹出值
【发布时间】:2015-10-13 12:17:13
【问题描述】:

我设计了一个带有按钮的输入文本框。单击按钮后,将显示一个弹出窗口。弹出窗口包含带有值的表。现在我选择了一个值,但在文本框中没有显示。

如何获得价值?请指导我。

<div>
<label for="name" style="margin: 0px;">EMP NAME</label>
<input type="text" class="input-normal" id="empname" href="#fee-details" data-toggle="modal" style="line-height: initial; margin-left: 6px;">
</div>

<div class="modal fade" id="fee-details" tabindex="-1" role="dialog" aria-labelledby="fee-details-label" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
    <div class="modal-body">
        <table class="table table-condensed">
            <thead class="modal-header login-modal-header">
                <tr style="width:100%;">
                    <th style="width:50%;">Header1</th>
                    <th style="width:50%;">Header2</th>
                </tr>
            </thead>
            <tbody class="body">
                <tr>
                    <td>1</th>
                    <td class='val'>A</th>
                </tr>
                <tr>
                    <td>2</th>
                    <td class='val'>B</th>
                </tr>
                <tr>
                    <td>3</th>
                    <td class='val'>C</th>
                </tr>
                <tr>
                    <td>4</th>
                    <td class='val'>D</th>
                </tr>
                <tr>
                    <td>5</th>
                    <td class='val'>E</th>
                </tr>
                <tr>
                    <td>6</th>
                    <td class='val'>F</th>
                </tr>
            </tbody>
        </table>          
    </div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->

脚本:

$('.body').on('click',function(){
$('#empname').val($(this).find('.val').html());
$('#fee-details').modal('toggle');
});

【问题讨论】:

    标签: jquery twitter-bootstrap


    【解决方案1】:

    您可以通过这种方式将表格中的点击值“返回”给&lt;input&gt;

    $("#values tbody td").on('click', function() {
        $("#empname").val($(this).text());
        $("#fee-details").modal('hide');
    }) 
    

    你的代码在小提琴中 -> http://jsfiddle.net/mwfbs3bk/

    注意:为方便起见,已给表格一个id


    更新带有一个小的预先输入示例。最初的 bootstrap 2.x 易于使用的 typeahead 已从 bootstrap 3.x 中删除。幸运的是,它非常非常容易重新实现。它只是提取旧源并将其包含在项目中。这里已经为你完成了 -> https://github.com/bassjobsen/Bootstrap-3-Typeahead

    只需包含脚本

    <script src="https://rawgithub.com/bassjobsen/Bootstrap-3-Typeahead/master/bootstrap3-typeahead.js"></script>
    

    以这种方式将您的 #empname &lt;input&gt; 转换为预输入:

    $("#empname").typeahead({ source: ['London', 'Copenhagen', 'Antwerpen', 'Stockholm', 'Berlin'] });
    

    从上面更新小提琴 -> http://jsfiddle.net/mwfbs3bk/2/

    【讨论】:

    • :嗨,现在我希望弹出窗口显示在 onfocus 事件中。这意味着一旦我尝试在文本框中输入名称,它就会显示带有值的表格。我认为该属性是“自动完成”。
    • @NavyaPrasad,好的 - 这被称为预输入......?这完全是另外一回事。所以你实际上是在考虑输入,而不是模态?
    • @NavyaPrasad - 是的,这与原始问题相去甚远,但请参阅更新。
    • 您输入的是静态值。我想要已创建值的表。我永久删除了选择值按钮。
    • @NavyaPrasad,是的 - 这是一个示例,说明如何使用集成预输入,我希望你能弄清楚其余部分 - 只需传递一个动态值数组 JSON对象或其他东西。上面的链接有详细的说明。
    【解决方案2】:

    你可以在 jquery 中做这样的事情。测试了代码,运行良好。

        $(document).ready(function() {
          $('.tableBody tr').on('click', function() {
    
            $('#empname').val($(this).find('.val').html());
            $('#fee-details').modal('toggle');
          });
        });
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    
    <div>
      <label for="name" style="margin: 0px;">EMP NAME</label>
      <input type="text" class="input-normal" id="empname" style="line-height: initial; margin-left: 6px;">
      <button type="button" id="name_value" class="btn btn-primary btn-xs" href="#fee-details" data-toggle="modal">Select Value</button>
    </div>
    
    <div class="modal fade" id="fee-details" tabindex="-1" role="dialog" aria-labelledby="fee-details-label" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-body">
            <table class="table table-condensed">
              <thead class="modal-header login-modal-header">
                <tr style="width:100%;">
                  <th style="width:50%;">Header1</th>
                  <th style="width:50%;">Header2</th>
                </tr>
              </thead>
              <tbody class="tableBody">
                <tr>
                  <td>1</th>
                    <td class="val">A</th>
                </tr>
                <tr>
                  <td>2</th>
                    <td class="val">B</th>
                </tr>
                <tr>
                  <td>3</th>
                    <td class="val">C</th>
                </tr>
                <tr>
                  <td>4</th>
                    <td class="val">D</th>
                </tr>
                <tr>
                  <td>5</th>
                    <td class="val">E</th>
                </tr>
                <tr>
                  <td>6</th>
                    <td class="val">F</th>
                </tr>
              </tbody>
            </table>
          </div>
        </div>
        <!-- /.modal-content -->
      </div>
      <!-- /.modal-dialog -->

    【讨论】:

    • 您是否已将 更改为 并将 更改为 ?
    【解决方案3】:

    这里只需要写几行 jquery 就可以帮助你做到这一点

    $('tbody td').on('click',function(){
        var selectedVal = $(this).text().trim();   
        $('#empname').val(selectedVal);
        $("#fee-details").modal('hide');
    })

    这是演示代码

    Demo

    With Fixed Header table

    【讨论】:

    • @NavyaPrasad 嘿,它对我有用,如果有任何变化,请告诉我代码
    • 是的,我删除了选择值按钮。所以现在我单击文本框,它显示弹出窗口并且值也被选中,但只有一个值显示在文本框中。这意味着首先单击文本框是显示弹出窗口,现在我选择了任何值,但它显示第一个值(表的顶部值)。
    • @NavyaPrasad 请在问题中更新您的代码并提及为更新的代码
    • 嗨,更新了我在问题中的代码。请检查一次
    • @NavyaPrasad 嘿,请在 jsfiddle 中检查它是否对我有用,请看一下 jsfiddle.net/Vq6gt/125
    猜你喜欢
    • 2012-06-19
    • 2018-08-24
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多