如何使用JavaScript通过HTML表单发送消息?

时间:2016-02-24 14:44:18

标签: javascript html automation

我尝试使用JavaScript通过HTML表单输入类型文本发送消息。我在溢出时发现了其他类似的question,但它似乎已经过时了。

var o = document.getElementById("chatMessage");

// set the chat textbox
var chatTextBox = o[0];

// set the message value
chatTextBox.value = "Text";

// create a keydown event    
var e = new Event("keydown");

// it has to simulate the Enter press (key code is 13)
e.keyCode = 13;

// trigger it
chatTextBox.dispatchEvent(e);

它返回错误:

  

未捕获的TypeError:无法设置属性' value'未定义的

我试过了:

document.getElementById("chatMessage").value("Text");

它填满了这个盒子。

似乎导致此问题的线是

var chatTextBox = o[0];

HTML部分

<form id="chatForm">
                    <div style="margin:5px">        
                        <div class="form-group" style="margin-bottom:5px">
                            <input type="text" class="form-control" placeholder="Type here to chat..." id="chatMessage" maxlength="200" autocomplete="off">
                        </div>
</form>

1 个答案:

答案 0 :(得分:0)

根据你的JS部分,你应该这样做

var o = document.getElementById("chatMessage"); //Your input

// set the chat textbox
//var chatTextBox = o[0];  

// set the message value
//chatTextBox.value = "Text";

// Lines commented above make no sense, your o element is not an array replace by 

o.value = "Text";

// create a keydown event    
var e = new Event("keydown");

// it has to simulate the Enter press (key code is 13)
e.keyCode = 13;

// trigger it
o.dispatchEvent(e);

我真的不知道你想做什么,但它会纠正你的错误

Uncaught TypeError: Cannot set property 'value' of undefined

更新:

也许你可以使用jQuery,它更容易操作元素。

如果你使用它,你可以这样做:

http://codepen.io/anon/pen/oxvBbr