【问题标题】:Need help getting text from list item and putting in input box需要帮助从列表项中获取文本并放入输入框
【发布时间】:2015-02-23 21:30:27
【问题描述】:

我有以下 html 代码,下拉列表是一个列表

                        <div class="input-group m-bot15">
                            <input type="text" class="form-control round-input" id="textbox1">
                            <div class="input-group-btn">

                                <button tabindex="-1" data-toggle="dropdown" class="btn btn-info dropdown-toggle" type="button">
                                    <span class="caret"></span>
                                </button>
                                <ul role="menu" class="dropdown-menu pull-right">
                                    <li><a href="#">1</a></li>

                                    <li class="divider"></li>
                                    <li><a href="#" >2</a></li>
                                    <li><a href="#">3</a></li>
                                    <li><a href="#">4</a></li>
                                    <li class="divider"></li>

                                    <li><a href="#">5</a></li>
                                    <li class="divider"></li>
                                    <li><a href="#">6</a></li>
                                    <li><a href="#">7</a></li>
                                    <li class="divider"></li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>

我正在尝试获取它,所以当我点击 1 时,它会将“1”放在推荐使用 Javascript 的人中。

这是我迄今为止尝试过的:

&lt;li onmousedown="transferText(one)" id="one"&gt;1&lt;/li&gt;

现在也添加您输入的文本和 id,例如 textBox

<script>
function transferText(listItem) {
    document.getElementById(textBox).innerHTML = document.getElementById(listItem).innerHTML;
}
</script>

【问题讨论】:

  • 编辑我试图得到它,所以当我点击 1 时,它会在输入框中输入“1”,有人建议使用 Javascript。
  • 到目前为止你尝试过什么?您只展示了 html 代码,没有展示 javascript。
  • 我不太擅长 javascript 这就是我来这里的原因
  • 这不是本网站的运作方式。你必须展示你尝试过的东西并寻求指导帮助。如果你不擅长 javascript,你可以随时学习。
  • 嗯,我必须在 10 分钟内完成,所以是的,我尝试了一些东西,但主要是因为我不会 javascript

标签: javascript jquery html css


【解决方案1】:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
    $(document).ready(function() {
        $('a', 'ul.dropdown-menu').click(function() {
            $('#textbox1').val($(this).text());
            return false;
        });
    });
</script>

【讨论】:

  • 抱歉格式化,无法输入接受来自 sublime 的复制/粘贴。
  • 很高兴为您提供帮助!
【解决方案2】:
var inputGroup = $('.input-group');

// Bind a click event to all elements with the selector ".dropdown-menu a" 
// within ".input-group" to an anonymous function that will insert the text
// value into the input. 
inputGroup.on('click', '.dropdown-menu a', function(event)
{
    // event = jQuery click event
    // this = The anchor that was clicked
    event.preventDefault();

    // Get the text value of the anchor and set it as the input value
    inputGroup.find('#textbox1').val($(this).text());
}

【讨论】:

  • 为什么在元素不是动态的时候使用.on()?
  • @osekmedia 1. 更好的内存效率 2. 命名空间事件 3. 允许动态元素 4. 您可以使用.off 删除特定的处理程序。
  • 将方法封装在 NS it 的闭包中不是更有效吗?
  • @osekmedia 这将命名事件的绑定,而不是实际的事件。查看api.jquery.com/event.namespace
猜你喜欢
  • 2011-06-11
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多