我做了网络聊天,代码是:
<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 ,而不是表单。
非常感谢任何帮助。 非常感谢你
答案 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();