繁体   English   中英

JS:输入的.value返回一个空字符串(不为空时)

[英]JS: input's .value returns an empty string (when not empty)

我一直在尝试从文本输入中获取值,但是由于某种原因,它不起作用。

本质上,我有一个文本输入。 用户在输入中输入内容,我希望.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并将返回值传递给addEventListenerundefined )。 由于输入元素当时还没有值,因此.value将返回一个空字符串。

传递一个函数代替:

....addEventListener("mousedown", function() {
    applyEvent(event);
}, false);

(我不知道event在您的代码中来自哪里,但我认为它是一个自定义对象, 而不是实际的事件对象)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM