2014-12-04 40 views
0

我已经做了网络聊天该代码:按发送短信从外地输入到数据库中输入

<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> 

因此,该消息通过单击按钮提交进入数据库的罚款,但是我是想知道广告代码突出按下输入,它会被发送,所以会有2个选项。

我正在使用onClickonKeypress它不工作。

<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,不形式

非常感谢您的帮助。 非常感谢您

+0

它是如何获取到数据库? – 2014-12-04 18:46:10

+0

通过点击提交按钮 – Hugo 2014-12-04 19:10:41

回答

0

您提供的代码仅在调用postMessageToDB()时才有效......它不会侦听按键。

使用jQuery:

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

它让我的div chatlog加载负荷而不会显示以前插入到数据库=/ – Hugo 2014-12-04 19:09:44

0

你需要调用的功能,你可以通过添加事件监听到文档做到这一点,然后检查它是否是输入被按下。

 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(); 
+0

内容它让我显示消息之前插入数据的基础上而不是按enter工作。 – Hugo 2014-12-04 19:12:09

+0

是的,因为这没有按下输入提交。您要准确提交哪些字段? @Hugo – baao 2014-12-04 19:13:49

+0

需要提交'div name'和'div message'这将显示如下:** [Hugo] 06:07 pm - 点击提交** – Hugo 2014-12-04 19:19:10