【问题标题】:How to restrict one number in 1-100 auto generate JavaScript如何限制 1-100 中的一个数字自动生成 JavaScript
【发布时间】:2013-08-15 09:26:42
【问题描述】:

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

jsfiddle example

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>

【问题讨论】:

    标签: javascript numbers generator


    【解决方案1】:

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

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

    http://jsfiddle.net/JHhDx/

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

    【讨论】:

    • Ou 非常感谢...这正是我想要的...谢谢:)))
    • 这绝对是一个简洁明了的答案:)
    【解决方案2】:

    除了循环,你还可以做一个递归函数。

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

    【讨论】:

    • 我有一个问题,这个生成的数字是 值吗?
    • 如果您将随机数生成保留在函数中,只需将输入的值设置为返回值(例如,$('#myinput').val(getit(restrictedNum));) .
    • 好的,我在 $("#randomnumber").text(numRand);这条线我把你的想法说成这样 $('#myinput').val(numRand);一个在 html 中的输入,它完美地工作......非常感谢你
    猜你喜欢
    • 2020-11-16
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 2011-02-20
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    相关资源
    最近更新 更多