2017-07-21 14 views
0

2つの入力の間に数字の乱数ジェネレータを取得しようとしています。あなたは私は1つのコードではJavaScriptを持って、気づいているだろうと私はコードHTML JavaScript乱数選択

<form action="/action_page.php"> 
 
<input type="number" name="low" id="low" placeholder="lowest number" value="1"><br> 
 
<input type="number" name="high" id="high" placeholder="highest number" value="10"><br> 
 
<input type="button" value="Submit" onclick="myFunction()"> 
 
</form> 
 
<p id="randnum"></p> 
 

 
<script> 
 
function myFunction() { 
 
    var x = document.getElementById("randnum") 
 
    x.innerHTML = Math.floor((Math.random() * 'low') + 'high'); 
 
} 
 
</script>

を持っています。私は「低」と「高」に入れ

は、あなたが入力の値を取得し、計算に適用する必要があり、一定数

答えて

0

<form action="/action_page.php"> 
 
<input type="number" name="low" id="low" placeholder="lowest number" value="1"><br> 
 
<input type="number" name="high" id="high" placeholder="highest number" value="10"><br> 
 
<input type="button" value="Submit" onclick="myFunction()"> 
 
</form> 
 
<p id="randnum"></p> 
 

 
<script> 
 
myFunction =() => { 
 
let min = parseInt(low.value, 0); 
 
let max = parseInt(high.value, 0); 
 

 
let x = document.getElementById("randnum") 
 
x.innerHTML = Math.floor(Math.random() * (max - min)) + min; 
 
} 
 
</script>

2

で動作します。 - 私は入力値を数値に変換するためにparseInt()を使用していることに注意してください。また、1つの意思を使用すると、常に低い値が得られるので、結果は10になります。これは0に等しいので、0 + 10 = 10となります。

@Quentinsのコメントに基づいて - 私はaleredあなたの数字に合うように計算してください。

function myFunction() { 
 
    var x = document.getElementById("randnum"); 
 
    var high = parseInt(document.getElementById("high").value); 
 
    var low = parseInt(document.getElementById("low").value); 
 
    x.innerHTML = Math.floor(Math.random()*(high-low+1)+low) 
 
}
<form action="/action_page.php"> 
 
<input type="number" name="low" id="low" placeholder="lowest number" value="1"><br> 
 
<input type="number" name="high" id="high" placeholder="highest number" value="10"><br> 
 
<input type="button" value="Submit" onclick="myFunction()"> 
 
</form> 
 
<p id="randnum"></p>

+2

正しい式は、Math.floor(Math.random()*(最大 - 最小+ 1)+分)。 – Quentin

+1

おかげさまで@クエンティン - 答えはあなたの計算に合わせて修正されました。 – gavgrif

0

まず、(Math.random() * 'low') + 'high'で、低および高は本当に整数値ではありません。

第二に、非常に重要問題の他は言及しなかったが、Math.random()は、あなたが他の回答の一部に従った場合、乱数は常に0

使用されます0と1の間のdouble型の値を返すということですこの:私はこれが役立つ

<form action="/action_page.php"> 
<input type="number" name="low" id="low" placeholder="lowest number" 
value="1"><br> 
<input type="number" name="high" id="high" placeholder="highest number" 
value="10"><br> 
<input type="button" value="Submit" onclick="myFunction()"> 
</form> 
<p id="randnum"></p> 

<script> 
function myFunction() { 
var x = document.getElementById("randnum") 
var low = document.getElementById("low").value; 
var high = document.getElementById("high").value; 
var random = Math.random(); 
x.innerHTML = Math.floor(random * (high-low) + high); 
} 
</script> 
+0

私があなたの提案をすると、うまくいかないでしょう。しかし、私はこれであなたを助けることができます:ブラケットを取り除くと、010が表示されます。最初の「数学」から置き換えれば、数字なしで表示されます –

+0

ありがとうございます。あなたの答えは正しいですが、どのように乱数の最後に '0'を取り除くのですか? –

+0

@MULTITeamちょうどタイプミスとコードを修正しました。私が鉱山を投稿したとき、私は答えのいくつかが第2の問題を解決しなかったことを発見した。しかし、今のところ、Marko Savicとgavgrifはどちらも正解を示唆していました。 – Tim1234

0
var max = parseInt($("#high")[0].value); 
var min = parseInt($("#low")[0].value); 
x.innerHTML = Math.floor(Math.random() * max) + min; 
+0

申し訳ありませんが、これは動作しません。 –

+0

@MULTITeamコードを変更しました。今すぐお試しいただけますか? Simplest Formulaは(Math.random()* max)+ min – VenkyDhana

+0

です。これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューの投稿](レビュー/低品質の投稿/ 16784813) – Shiladitya

0

と思います。

<form action="/action_page.php"> 
 
<input type="number" name="low" id="low" placeholder="lowest number" value="1"><br> 
 
<input type="number" name="high" id="high" placeholder="highest number" value="10"><br> 
 
<input type="button" value="Submit" onclick="myFunction()"> 
 
</form> 
 
<p id="randnum"></p> 
 

 
<script> 
 
function myFunction() { 
 
    var x = document.getElementById("randnum") 
 
    var low = document.getElementById("low").value; 
 
    var high = document.getElementById("high").value; 
 
    x.innerHTML = Math.floor((Math.random() * low) + high); 
 
} 
 
</script>

+0

あなたの答えは正しいですが、私は "高"を "低"に変更しなければならず、逆も同様に機能します。 –

+0

最後のコメント、私は最も低い数字を設定することはできません、最高だけ –