【问题标题】:Is it possible to change the input in a select field?是否可以更改选择字段中的输入?
【发布时间】:2015-09-01 03:53:10
【问题描述】:

我有一个包含两个选择字段的表单,我使用 select2 来匹配和标记插入到该字段中的内容。我需要将由新行分隔的输入列表转换为由空格分隔的列表(因为 IE 不会自动执行此操作)。

我有以下代码,它适用于任何 <input> 字段:

$('#editor').bind('paste', function (e) {
            var clipped = window.clipboardData.getData('Text');
            clipped = clipped.replace(/(\r\n|\n|\r)/gm, " "); //replace newlines with spaces
            $(this).val(clipped);
            alert(clipped);
            return false; //cancel the pasting event
        });

但如果#editor 是<select> 字段,它似乎不起作用。

<form method="POST" action="/run" class="ui-widget" onsubmit=" return confirmSubmit(this, 'run',true) ">
    Editor:
    <select name="editor" id="editor" multiple style="width: 200px">
        <option>ALL</option>
    </select>
        <input type="submit" value="Submit">
 </form>

知道缺少什么吗?

【问题讨论】:

  • 据我所知,IE 甚至不支持粘贴到选定字段中。
  • 如果我在 select2 选项中有 multiple style 和匹配器,它就可以工作。
  • 我没有使用 select2 获得任何“粘贴”事件。在这里比较:jsfiddle.net/ct5172sk
  • 是的,它似乎无法识别它们。这就是问题所在。
  • 我并不完全清楚你想做什么,你可能想改写你的 q 和/或提供一个完整的代码演示。但我认为这可能是您正在寻找的:stackoverflow.com/a/17238679/1922144

标签: jquery-select2


【解决方案1】:

我不相信选择粘贴是可能的

解决方法可能是:

  • 创建一个不可见的输入
  • 在选择字段上绑定 keydown 事件
  • 检查按键是否为控制键
  • 如果是这样,将焦点更改为不可见的输入
  • 在此输入上完成粘贴事件后在此处捕获值
  • 将选择项的值更改为输入的值:)

编辑:

  • 将焦点更改回选择字段

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 2020-01-05
    • 2011-06-18
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多