我一直在尝试从文本输入中获取值,但由于某种原因,它不起作用。
本质上,我有一个文本输入。用户在输入中键入内容,我希望 .value
属性发生变化(chrome 说它会改变),但是当我单击保存它并读取 JSON 输出时,它会返回作为空白字符串。
这是该位的 HTML:
<input id="eventName" name="efrm" type="text" value="" />
<button type="button" id="okEvent">Save Event</button>
这是您需要查看的 JS:
document.querySelector("#okEvent").addEventListener("mousedown", applyEvent(event), false);
function applyEvent(event) {
var eventName = document.querySelector("#eventName").value;
event.data = {
name: eventName,
img: null,
type: 1,
fov: 0,
orientation: 1,
trigger: 1
};
}
然而,JSON 输出表明 event.data 对象的 name 属性是一个空字符串。我真的不明白这是怎么回事。
最佳答案
您正在立即调用applyEvent
并将返回值传递给addEventListener
(这是未定义的
)。由于此时输入元素还没有值,因此 .value
将返回一个空字符串。
传递一个函数:
....addEventListener("mousedown", function() {
applyEvent(event);
}, false);
(我不知道代码中的事件
来自哪里,但我假设它是一个自定义对象,不是实际的事件对象)。
关于javascript - JS : input's . 值返回空字符串(非空时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467171/