在""之后插入文字。用javascript输入元素?

时间:2014-10-18 13:55:14

标签: javascript

代码:

<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

7 个答案:

答案 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'; } "/>

DEMO

答案 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);" />

Demo

答案 6 :(得分:0)

试试这个:

<input type="text" onkeydown="
if (event.keyCode == 13) { this.parentNode.insertBefore(document.createTextNode('OK'), this.nextElementSibling); }
">

它将在输入后直接添加文本节点(不创建任何span或div)。