来自文本输入的未定义值

时间:2019-01-02 13:54:04

标签: javascript jquery html

我知道使用简单的解决方案可能是一个非常简单的问题,但是我对js和jquery还是陌生的。我在html中有一个div,并且是在js中创建的:

$("#Data").html(`
    <div>
        A: <input type="text" id="A1"/>
    </div>
    <div>
        B <input type="text" id="B2"/>
    </div>
    <div>
        C <input type="text" id="C"/>
    </div>
    <div>
        <input type="button" id="button1" value="Submit" onclick="submit1()"/>
    </div>
`);

还设置了A1和B2的值(取决于检查的无线电和选择的选项)。 当我尝试获取C的值(带有警报)时,它似乎未定义。为什么会这样?

var C=$("#C").val();
alert("A="+A+" B2="+B2+" C="+C);

A1和B2很好(是吗?)。

这是我完成的代码,其中包含所有下拉列表和收音机JSFiddle

2 个答案:

答案 0 :(得分:0)

您的分配“ var C = $(“#C”)。val();“不在函数中,而是在脚本的根目录中。

它将在脚本加载后解释脚本时执行。目前(页面加载),C没有任何价值,因为您的输入仍不在DOM中。

您需要在每次提交时在方法“提交”中获取此值。

该赋值不是绑定,因此每次您想读取输入值时都需要更新C的值。

答案 1 :(得分:0)

您的问题是您试图在功能之外获取输入的值,但是这些部分在实例化而不是在单击按钮时运行。

因此,当您的页面加载时,值当然是不确定的,因为您获取的是空输入的值。您需要正确地将值拉入您的Submit函数。如果要使用全局变量,则需要这样声明它们,以便可以对其进行更新。