我想限制一个数字,例如34在这个数字生成器。当有人生成一个数字与按钮点击,永远不会符合一个限制的数字,例如34。
function IsNumeric(n) {
return !isNaN(n);
}
$(function () {
$("#getit").click(function () {
let numLow = $("#lownumber").val();
let numHigh = $("#highnumber").val();
let adjustedHigh = (parseFloat(numHigh) - parseFloat(numLow)) + 1;
let numRand = Math.floor(Math.random() * adjustedHigh) + parseFloat(numLow);
if ((IsNumeric(numLow)) && (IsNumeric(numHigh)) && (parseFloat(numLow) <= parseFloat(numHigh)) && (numLow !== '') && (numHigh !== '')) {
$("#randomnumber").text(numRand);
} else {
$("#randomnumber").text("Careful now...");
}
return false;
});
let input = $("input[type=text]");
input.each(function () {
$(this).data("first-click", true);
});
input.focus(function () {
if ($(this).data("first-click")) {
$(this).val("");
$(this).data("first-click", false);
$(this).css("color", "black");
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="page-wrap">
<input type="text" id="lownumber" value="1" />
<input type="text" id="highnumber" value="100" />
<br />
<button id="getit">Generate!</button>
<div id="randomnumber"></div>
</div>
2条答案
按热度按时间kuarbcqp1#
添加条件检查以确保生成的号码不是受限号码:
http://jsfiddle.net/JHhDx/
您可能还需要添加一些内容来检查,以确保受限号码也不是唯一可能的号码
kgsdhlau2#
除了循环之外,你还可以创建一个递归函数。
http://jsfiddle.net/chucknelson/eYAy6/2/