在Javascript中使用用户输入作为变量?

时间:2016-12-22 14:29:51

标签: javascript html

我正在尝试制作一个示例网页,询问用户是否为整数,如果它在1到12之间,它将返回相应的圣诞节(圣诞节的第8天:8位女佣挤奶等)< / p>

我对javascript不是很熟悉,但我不知道有任何其他方法可以让程序在html中运行。遗憾的是,Python不是一个选择。在尝试将用户提供的整数收集为网页随后显示的变量时,我陷入困境。我的代码如下。非常感谢任何帮助或建议。

<!>
<html>
<head>
<title> Merry Christmas! </title>
</head>
<body>
<input type="number" id="inputfield1" name="inputfield1" />
<input type="submit" id="Submit" text="Submit" onclick="compute()" />
<script type = "text/javascript">

function compute(){
    var cday = document.getElementByName("inputfield1");
    document.write(cday);
}
</script>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

document.getElementByName不存在。您可以使用document.getElementById("inputfield1")document.getElementsByName("inputfield1")[0]

然后你将有一个dom元素,而不是输入值,你可以使用元素的value属性访问该值:

var cday = document.getElementById("inputfield1").value;

答案 1 :(得分:1)

您的网页存在问题,您需要根据其ID获取输入值。

var cday = document.getElementById("inputfield1").value;

更好的解决方案是在输入中添加事件侦听器。 onclick属性目前不是最佳实践,事件监听器是更广泛接受的解决方案。这是一个例子:

&#13;
&#13;
<!DOCTYPE html>
<html>
<body>

	<input type="number" id="inputInteger" />
	<input type="submit" id="btnSubmit" text="Submit" />
    
    <p id="result"></p>

	<script type = "text/javascript">
        // Event Listener that Runs "Compute()" on a Click
        document.getElementById("btnSubmit").addEventListener("click", compute);

        // Gets Input Value and Displays it in a <p>
        function compute() {
            var day = document.getElementById("inputInteger").value;
            document.getElementById("result").innerHTML = day;
        }
    </script>
</body>
</html> 
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您想使用DOM元素的value字段:

<html>
    <head>
        <title> Merry Christmas! </title>
        <meta charset="utf-8" /> <!-- you don't have to do that, but it can help when you are to lazy using the `&...;` escapes -->
    </head>
    <body>
        <input type="number" id="inputfield1" id="inputfield1" />
        <input type="submit" id="Submit" text="Submit" onclick="compute()" />
        <script type="text/javascript">
            function compute() {
                var cday = document.getElementById("inputfield1").value;
                document.write(cday);
            }
        </script>
    </body>

我在这里使用了ID,因为多个元素可以具有相同的名称。如果您想使用name,请将id="..."替换为name="..."(之前为之前),将document.getElementById("...").value替换为document.getElementsByName("...")[0].value。