0

请帮我找到这个代码的解决方案,我想在这个数字生成器中限制一个数字,例如 34。当有人通过按钮单击生成数字时,切勿与受限数字重合,例如 34 :) 谢谢

jsfiddle 示例

function IsNumeric(n){
    return !isNaN(n);
} 

$(function(){

    $("#getit").click(function() {

        var numLow = $("#lownumber").val();
        var numHigh = $("#highnumber").val();

        var adjustedHigh = (parseFloat(numHigh) - parseFloat(numLow)) + 1;

        var 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;
    });

    $("input[type=text]").each(function(){
        $(this).data("first-click", true);
    });

    $("input[type=text]").focus(function(){

        if ($(this).data("first-click")) {
            $(this).val("");
            $(this).data("first-click", false);
            $(this).css("color", "black");
        }

    });

});

和 HTML

<div id="page-wrap">

    <img src="images/randomnumb.png" alt="get a random number between..." />

    <input type="text" id="lownumber" value="1" />
    and
    <input type="text" id="highnumber" value="100" />

    <br />

    <button id="getit">Generate!</button>

    <div id="randomnumber"></div>

</div>
4

2 回答 2

1

添加条件检查以确保生成的号码不是限制号码:

var numRand = 0, restrictedNumber = 34;      
do {
    numRand = Math.floor(Math.random()*adjustedHigh) + parseFloat(numLow);
} while (numRand == restrictedNumber);

http://jsfiddle.net/JHhDx/

您可能还想添加一些东西来检查以确保受限号码也不是唯一可能的号码

于 2013-08-15T09:46:04.223 回答
0

除了循环之外,您还可以创建一个递归函数。

http://jsfiddle.net/chucknelson/eYAy6/2/

var userRestrictedNum = 34; //could get this from input    

function getit(restrictedNum) {
        ...random number code...

        if(numRand != restrictedNum) {
            return numRand;
        }
        else {
            return getit(restrictedNum);
        }
    }

    $("#getit").click(function() {
        $("#randomnumber").text(getit(userRestrictedNum));
    });
于 2013-08-15T09:52:14.440 回答