javascript - JS : input's . 值返回空字符串(非空时)

标签 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 属性是一个空字符串。我真的不明白这是怎么回事。

最佳答案

您正在立即调用applyEvent并将返回值传递给addEventListener(这是未定义的)。由于此时输入元素还没有值,因此 .value 将返回一个空字符串。

传递一个函数:

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

(我不知道代码中的事件来自哪里,但我假设它是一个自定义对象,不是实际的事件对象)。

关于javascript - JS : input's . 值返回空字符串(非空时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467171/

相关文章:

javascript - 覆盖 chrome 扩展中的 javascript 警报

javascript - 在 Bokeh 中显示裁剪后的图像

javascript - 附加外部 js 和 css 文件的页面速度

yii2 - 如何在 Yii2 中将 textInput 设置为 readOnly?

javascript - JsTree: - 为什么 jsTree 删除我的属性?

javascript - 如何在 node.js 中使用 sqlite3 - 什么是 smt?

reactjs - React-native: <TextInput/> 删除键盘预测

python - 只允许 float ,带有一位小数点和负号(Python/Kivy/Regex)

javascript - React native - 为 TextInput 添加货币前缀

jquery - 如何在 focusout 中为表单中的所有字段添加占位符?