我一直试图从文本输入中获取值,但由于某种原因,它无效。
基本上,我有一个文本输入。用户在输入内部输入,我希望.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属性是一个空字符串。我真的不明白这里发生了什么。
答案 0 :(得分:1)
您立即致电applyEvent
并将返回值传递给addEventListener
(undefined
)。由于input元素当时还没有值,.value
将返回一个空字符串。
改为传递函数:
....addEventListener("mousedown", function() {
applyEvent(event);
}, false);
(我不知道代码中event
的来源,但我认为它是一个自定义对象,不是实际的事件对象。)