所以基本上我有一个for循环,我试图让它运行x次。取决于用户输入的内容。我遇到的问题是如何获取用户输入,并确保它的数字不是任何其他类型的输入。如果错误的话,让他们再试一次。
答案 0 :(得分:0)
在 HTML5 中,您可以使用<input type="number">
将输入限制为仅限数字字符。
对于与HTML5不兼容的旧版浏览器,请使用<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57'></input>
。这利用了Javascript来确保input
框中只接受数字输入。
查看以下两个解决方案的代码段:
Javascript-based:<input type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57'></input>
<br><br>
HTML5 solution (preferred):<input type="number">
答案 1 :(得分:0)
<强> HTML:强>
<input type="text" name="somefield" id="someid" value="10" />
<强> JS:强>
var userInput = document.getElementById('someid').value;
if( Number.isInteger(parseInt(userInput)) )
{
// do something
}
此外,Number.isInteger()
在Internet Explorer 11或更早版本上不起作用。
答案 2 :(得分:0)
<强> HTML 强>
<input type="number" id="myInput">
<button id="myButton">Run Loop</button>
<强>的Javascript 强>
$('body').on('click', '#myButton', function() {
var input = $('#myInput').val();
for(var i = 0; i < input; i++) {
alert('You have written inside input field: ' + input + ". This is Alert #" + (i+1))
}
});
答案 3 :(得分:0)
要从value
获取input
,您可以使用输入元素的value
属性。
要确保输入是一个数字,您可以指定type="number"
,如果支持HTML5,如Angelos Chalaris answer中所述。
document.getElementById('btn').onclick = function(){
var totalIterations = parseInt(document.getElementById('input').value);
var output = document.getElementById('output');
output.innerHTML = '';
for(var i = 1; i <= totalIterations; i ++) {
var item = document.createElement('div');
item.innerHTML = i;
output.appendChild(item);
}
};
&#13;
<input id="input" type="number"/>
<input id="btn" type="button" value="Do loop"/>
<div id="output"></div>
&#13;
答案 4 :(得分:0)
以下是使用用户输入对话框的示例:
var input, parsedInput = 0;
do {
input = prompt("Please enter valid number", "1");
parsedInput = parseInt(input);
} while(isNaN(parsedInput) || parsedInput < 0);
// keep trying on invalid input or negative number
for( i=0; i< parsedInput ; i++){
console.log("loop " + i);
}
答案 5 :(得分:0)
这很简单
Input Number : <input id="numberinput" onkeypress="return event.charCode >= 48 && event.charCode <= 57" />
<button id="btn" onclick="doAction()">
Send
</button>
<script>
var doAction = function () {
var input = document.getElementById('numberinput');
var times = parseint(input.value);
for(var i = 0; i < times; i++) {
//do whatever you need to do
}
}
</script>