JS:input的.value返回一个空字符串(非空时)

时间:2014-01-30 20:52:08

标签: javascript textinput

我一直试图从文本输入中获取值,但由于某种原因,它无效。

基本上,我有一个文本输入。用户在输入内部输入,我希望.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属性是一个空字符串。我真的不明白这里发生了什么。

1 个答案:

答案 0 :(得分:1)

您立即致电applyEvent 并将返回值传递给addEventListenerundefined)。由于input元素当时还没有值,.value将返回一个空字符串。

改为传递函数:

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

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