2014-12-04 2 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> 

Итак, сообщение идет в штрафе базы данных, нажав на кнопку отправить, однако я был задаваясь вопросом, как подать код, чтобы нажать кнопку ввода, и он будет отправлен, поэтому будет два варианта.

Я использую OnClick и OnKeyPress, который он не работает.

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

Если браузер:

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

Im не используя форму, потому что попросили быть ДИВ, не форма.

Действительно ценю за любую помощь. Большое спасибо

+0

Как он получает в базу данных? –

+0

нажатием кнопки «Отправить» – Hugo

ответ

0

Ваш код будет работать только тогда, когда вызывается postMessageToDB() ... он не слушает нажатия клавиши.

Использование JQuery:

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

он держит мой div chatlog загружая загрузку без отображения содержимого, ранее вставленного в базу данных =/ – Hugo

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

Это позволяет мне отображать сообщение, ранее вставленное в базу данных, но не работающее, нажав enter. – Hugo

+0

Да, потому что это не отправляется с нажатием enter. в каких полях вы хотите точно указать? @Hugo – baao

+0

необходимо отправить 'div name' и' div message', которые будут отображаться следующим образом: ** [Hugo] 06:07 pm - тест на клик submit ** – Hugo

Смежные вопросы