代码:
<input type="text" onkeydown="
if (event.keyCode == 13) { HERE, ECHO "OK" RIGHT AFTER THIS INPUT ELEMENT }
">
如果不在此元素上添加ID或名称,是否可以这样做? 或者不将其包含在可识别的div中?
为了澄清,这应该是按下事件键码后的结果html:
<input type="text" onkeydown="
if (event.keyCode == 13) { HERE, ECHO "OK" RIGHT AFTER THIS INPUT ELEMENT }
">OK
答案 0 :(得分:1)
如果您想使用jQuery,您可以执行以下操作:
HTML
<input name="ok" type="text" id="showOK" />
JAVASCRIPT
$("#showOK").keypress(function() {
if (event.keyCode == 13){
$("<p>OK</p>").insertAfter("#showOK");
}
});
不使用ID
<input type="text" onkeydown="if (event.keyCode == 13) { $('<p>OK</p>').insertAfter(this);}">
答案 1 :(得分:1)
根据您的要求并尝试保留您的风格,您可以使用insertAdjacentHTML DOM元素方法在input
元素之后添加文字。
<input type="text" onkeydown="
if (event.keyCode == 13) { this.insertAdjacentHTML('afterend', 'OK');}
">
请参阅demo
答案 2 :(得分:1)
我在这里使用了各种答案。 首先,我必须创建一个新的var:
var that = this;
否则javascript无法以某种方式找到“this”。
然后使用jQUery方法:
$('<span>OK</span>').insertAfter(that);
导致:
<input type="text" onkeydown="
if (event.keyCode == 13) { var that = this; $('<span>OK</span>').insertAfter(that); }
">
答案 3 :(得分:0)
好的,首先,请不要使用inline-js。但要回答你的问题,
<input type="text" onkeydown="
if (window.event.keyCode == 13) { this.outerHTML = this.outerHTML + 'Ok'; } "/>
答案 4 :(得分:0)
<input type="text" onkeydown="ok(this, event)"/>
function ok(el, event) {
var _ok = document.createElement('span');
_ok.textContent = 'ok';
if (event.which == 13) {
el.parentNode.insertBefore(_ok, el.nextSibling)
}
}
答案 5 :(得分:0)
试试这个:
<input type="text" onkeydown="(function(event){
var input = event.target;
if(event.keyCode == 13){
input.outerHTML += 'OK';
}
})(window.event);" />
答案 6 :(得分:0)
试试这个:
<input type="text" onkeydown="
if (event.keyCode == 13) { this.parentNode.insertBefore(document.createTextNode('OK'), this.nextElementSibling); }
">
它将在输入后直接添加文本节点(不创建任何span或div)。