使用JavaScript捕获文本框的值

时间:2015-03-04 20:19:05

标签: javascript html

我试图显示一个按钮和文本框。让用户输入一个号码。将生成随机数,并且用户有10次尝试正确回答问题。脚本应检查用户数是否等于,小于或大于随机数。我无法从文本框输入数字。

HTML:

<form name="myForm">
        <div id='myForm'></div>
</form>

JAVASCRIPT:

   function partC(){
            var guessCount = 10;
            var random = Math.round(Math.random()*100);

            var button = document.createElement('input');
            button.type = "button";
            button.value = " Guess! ";
            document.getElementById('myForm').appendChild(button);
            var textbox = document.createElement('input');
            textbox.type = 'number';
            document.getElementById('myForm').appendChild(textbox);
            var check = document.getElementById('textbox').value
            button.onclick = calc(guessCount, random, check);

    }

    function calc(guessCount, random, check){
        while(guessCount > 0) {
                if (check == random){
                    alert("Correct!");
                } else if (check > random) {
                    alert("Try Again. Guess to High. " + guessCount + " tries left.");
                } else if (check < random) {
                    alert("Try Again. Guess to Low. " + guessCount + " tries left.");
                }
            guessCount--;

        }   
    }

6 个答案:

答案 0 :(得分:1)

您正在使用ID访问该值,而您没有为您的输入提供任何ID。

试试这个:

textbox.id = 'textbox';

答案 1 :(得分:1)

您的代码将回调函数结果分配给onclick事件而不是函数本身。此外,您还尝试运行while循环,这将在第一次单击事件时消耗guessCount。

我编辑了代码,以下应该可以工作:

   function partC(){
            var guessCount = 10;
            var random = Math.round(Math.random()*100);
            var button = document.createElement('input');
            button.type = "button";
            button.value = " Guess! ";
            document.getElementById('myForm').appendChild(button);
            var textbox = document.createElement('input');
            textbox.type = 'number';
            document.getElementById('myForm').appendChild(textbox);
            button.onclick = function(){
            var check = textbox.value*1;
            if (check == random){
                    alert("Correct!");
                } else if (check > random) {
                    alert("Try Again. Guess to High. " + guessCount + " tries left.");
                } else if (check < random) {
                    alert("Try Again. Guess to Low. " + guessCount + " tries left.");
                }
            guessCount--;

            }

    }

答案 2 :(得分:0)

您忘记了设置文本框元素的ID。尝试在创建后添加id。然后你可以通过它的id得到元素,在你的情况下是textbox

答案 3 :(得分:0)

var myEl = document.getElementById('a');

myEl.addEventListener('click', function() {
    alert(document.getElementById('text').value);
}, false);
<input type="text" id="text"/>
<button id="a">Alert text</button>

答案 4 :(得分:0)

Jquery有一个很棒的选择,

$('#unique-id').val();

唯一ID将是特定textarea的任何值。所以在这种情况下:

<textarea id="unique-id"></textarea>

答案 5 :(得分:0)

我只想将其添加到所有其他答案所说的内容中。您可能需要在此行后面加分号:

 var check = document.getElementById('textbox').value