创建一个可编辑的下拉菜单,并从外部JS填充它

Making an editable dropdown and populating it from an external JS

本文关键字:下拉菜单 从外部 JS 填充 编辑 一个 创建      更新时间:2023-09-26

我想做一个可编辑的下拉菜单,并在数据的双击下拉菜单应该出现,并使填充选项从和外部JS,这应该使运行不止一次。下面是这个

的HTML
<div class="tabbable">
    <div class="tab-content">
        <div class="tab-pane active" id="tab1">
            <table id='table-draggable1'>
                <tbody class="connectedSortable">
                    <tr>
                        <th>col1</th>
                        <th>col2</th>
                        <th>col3</th>
                        <th>col4</th>
                    </tr>
                    <tr>
                        <td>156</td>
                        <td>668</td>
                        <td>100.95</td>
                        <td class="master">100.95</td> //editable dropdown
                    </tr>
                    <tr>
                        <td class="desc">256</td>
                        <td>668</td>
                        <td>100.95</td>
                        <td class="master">100.95</td> // ondblclick should be editable
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</div>

jquery,我尝试使下拉菜单可编辑

    $document.ready(function ()
        {
dropdown();
            $(function ()
            {
                $(".master").dblclick(function (e)
                {
                    e.stopPropagation();
                    var currentEle = $(e.target);
                    var value = $(e.target).html();
                    console.log($(e.target));
                    if ($.trim(value) === "")
                    {
                        $(currentEle).data('mode', 'add');
                    }
                    else
                    {
                        $(currentEle).data('mode', 'edit');
                    }
                    updateVal(currentEle, value);
                });
            });
            function updateVal(currentEle, value)
            {
                $(currentEle).html("<select class='master'></select>");
                var mode = $(currentEle).data('mode');
                alert(mode);
                $(".master").focus();
                $(".master").keyup(function (event)
                {
                    if (event.keyCode == 13)
                    {
                        $(this).parent().html($(this).val().trim());
                        $(".master").remove();
                    }
                });
            }
            $(document).click(function (e)
            {
                if ($(".master") !== undefined)
                {
                    if ($(".master").val() !== undefined)
                    {
                        $(".master").parent().html($(".master").val().trim());
                        $(".master").remove();
                    }
                }
            });
        }
        function dropdown()
        {
           var resp = "<option>" + 1 + "</option>"; //this should be populated in dropdown
           $(".master").html(resp);
        }
    }
    });
http://jsfiddle.net/tXakG/

你可以在HTML5中使用datalist标签来实现这一点。

<input type="text" name="product" list="productName"/>
<datalist id="productName">
    <option value="a">Apple</option>
    <option value="o">Orange</option>
    <option value="b">Banana</option>
</datalist>

如果在浏览器中双击输入文本,将出现一个带有已定义选项的列表。

使用javascript添加:承认通过ajax从服务器获取的数据

http://jsfiddle.net/rajaveld/7yM6V/

其他可以使用jquery: