按Enter键将输入字段中的消息发送到数据库

时间:2014-12-04 18:40:34

标签: javascript html

我做了网络聊天,代码是:

<div id="namebox">Name: <input type="text"  id="name" autofocus autocomplete="on" ></div>  
<div id="msgbox" >Message: <input type="text" id="message"></div>
<div id="submitbox"><button onClick="postMessageToDB(); return false;" id="submit">Submit</button></div>

因此,通过点击提交按钮,消息进入数据库正常,但是我想知道广告代码到jut按Enter并且它将被发送,因此将有2个选项。

我正在使用 onClick onKeypress ,但它无效。

<div id="submitbox"><button onClick="postMessageToDB(); return false;" id="submit" onkeypress="postMessageToDB(this, event); return false;">Submit</button></div>

javascript在哪里:

<script type="text/javascript">  
    function postMessageToDB(inputElement, event) {  
        if (event.keyCode == 13) {   
            inputElement.div.submit();  
        }  
    }  
</script>  

我没有使用表单,因为它被要求是 div ,而不是表单

非常感谢任何帮助。 非常感谢你

2 个答案:

答案 0 :(得分:0)

您提供的代码仅在调用postMessageToDB()时才有效...它没有正在收听按键。

使用jQuery:

$(window).keyup(function(e) {
    if( e.keyCode==13 ) {
        postMessageToDB([...]);
    }
}

答案 1 :(得分:0)

您需要调用该函数,您可以通过向文档添加EventListener来执行此操作,然后检查它是否输入已按下的内容。

      var keyevent = (/Firefox/i.test(navigator.userAgent)) ? "keypress" : "keydown";  // fit browser 

      document.addEventListener(keyevent, function(e) {
          if  (event.keyCode == 13) {
              var a = document.getElementById('name').value; //get field values
              var b = document.getElementById('message').value; //get field values
              postMessageToDB(inputElement, event); // as I said, not sure what this will do, but you need to get the data you want to pass first within this function.
              }
       });

然后,只需从你的功能中删除按键检查,你应该检查这一行,我不能看到它会起作用:

inputElement.div.submit();