【问题标题】:Attaching a Mottie virtual keyboard to a ajaxcontroltoolkit combobox将 Mottie 虚拟键盘附加到 ajaxcontroltoolkit 组合框
【发布时间】:2015-09-23 02:10:42
【问题描述】:

我正在尝试让 Mottie 虚拟键盘在我输入 ajaxcontroltoolkit 组合框时显示出来,有没有人有这方面的经验?我对 javascript/jquery 没有太多经验。

我正在尝试在 ASP.NET 网络表单中执行此操作

我已经安装了所有 js 库,它可以在常规文本框或输入字段上运行,但我只是不知道如何将它连接到组合框或是否可以完成。

这是我正在编写的一段脚本:

<script type="text/javascript">
    $(document).ready(function () {
        $('#ComboBox1').keyboard({
                usePreview: false,
                autoAccept: true,
                enterNavigation: true,
                visible: function (e, keyboard, el) {
                    keyboard.$keyboard.prepend('<h2/>')
                        .draggable({
                            handle: "h2",
                            containment: "window"
                        });
                }
            })
            .addTyping();
    });
</script>

【问题讨论】:

    标签: javascript jquery asp.net combobox


    【解决方案1】:

    这是因为 ASP.NET AJAX 控件工具包创建的ComboBox 输出的 HTML 是这样的:

    <div id="ComboBox1" style="display:inline-block;">
      <table id="ComboBox1_Table" class="ajax__combobox_inputcontainer" style="border-width:0px;border-style:None;border-collapse:collapse;display:inline-block;position:relative;top:5px;" cellpadding="0" cellspacing="0">
        <tbody>
          <tr>
            <td class="ajax__combobox_textboxcontainer"><input style="margin: 0px;" name="ctl00$ComboBox1$TextBox" id="ComboBox1_TextBox" autocomplete="off" type="text"></td>
            <td class="ajax__combobox_buttoncontainer"><button id="ComboBox1_Button" type="button" style="visibility: visible; height: 23px; width: 23px; margin: 0px; padding: 0px;"></button></td>
          </tr>
        </tbody>
      </table>
      <input name="ctl00$ComboBox1$HiddenField" id="ComboBox1_HiddenField" value="0" type="hidden">
    </div>
    

    生成的input[type=text] 具有不同的 ID。它将服务器的 ID 与 _Textbox 连接起来。

    因此,在您的情况下,您必须使用 $('#ComboBox1_TextBox').keyboard 才能使其正常工作。例如:

    <script type="text/javascript">
        $(document).ready(function () {
            $('#ComboBox1_TextBox').keyboard({
                    usePreview: false,
                    autoAccept: true,
                    enterNavigation: true,
                    visible: function (e, keyboard, el) {
                        keyboard.$keyboard.prepend('<h2/>')
                            .draggable({
                                handle: "h2",
                                containment: "window"
                            });
                    }
                })
                .addTyping();
        });
    </script>
    

    【讨论】:

    • 这主要工作,现在问题是组合框失去焦点之后,如果我回到它,虚拟键盘不会再次出现。感谢 Buzinas 让我走到这一步!
    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    相关资源
    最近更新 更多