我尝试使用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>
答案 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,它更容易操作元素。
如果你使用它,你可以这样做: