[英]Input box that converts text to buttons
我正在尝试创建一个文本输入字段,以将输入文本转换为“按钮” onblur。 例如,在hotmail的“新电子邮件页面”中,当您输入电子邮件地址时,当您输入定界符(分号或逗号)时,它将变成带有删除按钮的小按钮状对象。 有人知道怎么做吗?
我对有边框的div想要的东西做了某种解决方法。 在div中,有一个输入字段,其中钻工不可见,并且隐藏了一个按钮。 我有一个js函数,它接受输入值并使按钮可见并带有该值,但这并不是我正在寻找的。
实际上,我只是在将标签添加到帖子中时才意识到stackoverflow也能做到这一点
这是一种伪造它的简单方法(看起来类似于SO对标签所做的操作):
<input>
,并确保其边框和轮廓都未设置。 <input>
旁边。 <input>
上的keydown
事件; 当用户尝试输入“分号”字符(例如分号或逗号)时,请创建按钮,将其添加到容器中,清空<input>
的值,并防止出现默认值(以使“分号” “字符未插入标记中,或未留在<input>
)。 这是基本思想。 完成此操作后,您可以向按钮添加事件侦听器/处理程序,或将其设置为所需的样式,等等。
var inp = document.getElementById('yourInput'),
tags = document.getElementById('yourContainer'),
breaks = {
186: 1, // semi-colon
188: 1 // comma
};
function createTag(txt) {
var elem = document.createElement('span');
txt = document.createTextNode(txt);
elem.appendChild(txt);
elem.className = 'tag';
tags.appendChild(elem);
}
function monitorText(e) {
e = e || window.event;
e = e.keyCode;
if (breaks[e]) {
e = inp.value;
inp.value = '';
createTag(e);
return false;
}
}
inp.focus();
inp.onkeydown = monitorText;
这是一个多值字段。 看看这个 。
功能不是那么复杂。 这是一个HTML列表,您选择的每个值都将转换为LI节点并附加到该列表中。 输入字段位于最后一个LI内,因此其光标始终可以位于最后一个选择之后。 此外,将输入值分配给隐藏的输入,可以在服务器端将其用作逗号分隔的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.