我试图显示一个按钮和文本框。让用户输入一个号码。将生成随机数,并且用户有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--;
}
}
答案 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