2

Railsを使用して非常に単純なJavaScriptFizzBu​​zzアプリに取り組んでいますが、フォームとそのボタンが機能していないようです。これは非常に大まかなコードであり、RubyではなくHTMLとJavaScriptであることがわかっています。これは、前者の2つが後者よりもよく知っているためです。

これが私のフォームです:

<p>In this field, put the starting number. It must be a positive integer <50.</p>
<form name="FizzBuzz Form">
<input type="text" name="fizzBuzzStart"/>
</form>
<div class="button" id="start">Add!</div><br>
<p>In this field, put the ending number. It must be a positive integer >50.</p>
<form name="FizzBuzz Form">
<input type="text" name="fizzBuzzEnd"/>
</form>
<div class="button" id="end">Add!</div><br><br>
<div class="button" id="play">Let's play!</div><br>

これは私のscript.jsファイルです:

$("#start").click(function(){
  var start = $("input[name=fizzBuzzStart]").val();});
$("#end").click(function(){
  var end = $("input[name=fizzBuzzStart]").val();});
$("#play").click(function(){
    for (var i=start; i<=end; i++) {
        if (i%15===0){console.log("FizzBuzz");}
            else if (i%3===0){console.log("Fizz");}
            else if (i%5===0){console.log("Buzz");}
            else {console.log(i);} }});});

アドバイスをいただければ幸いです。

4

1 に答える 1

0

主な問題は、startendがローカル変数として使用されるため、設定されるとすぐに効果的に破棄されることです。それらをグローバルにし、#endクリック ハンドラーのフィールド名のタイプミスを修正します。

var start, end;

$("#start").click(function () {
    start = $("input[name=fizzBuzzStart]").val();
});

$("#end").click(function () {
    end = $("input[name=fizzBuzzEnd]").val();
});

$("#play").click(function () {
    for (var i = start; i <= end; i++) {
        if (i % 15 === 0) {
            console.log("FizzBuzz");
        } else if (i % 3 === 0) {
            console.log("Fizz");
        } else if (i % 5 === 0) {
            console.log("Buzz");
        } else {
            console.log(i);
        }
    }
});

デモ: http://jsfiddle.net/fJyRb/

于 2013-03-22T07:05:17.990 に答える