2016-12-08 3 views
0

誰かが私のjavascriptプロジェクトで何かを実装するのを助けてくれますか? @http://codepen.io/urketadic/pen/YpLgBX 番号が間違っていて、πと連続していない場合は赤に変えたい。私が数え続けてすべてと比較することは本当に難しい。私はこれをたくさん試してみたと私は、このコードを作ってみた終わり間違っているとキーダウン番号を赤に変えようとしています

var count = 0; 
// color the mistake right away 
    $("#inputsm").keyup(function(event) { 
    var pressed = event.key; 
    answer = $("#inputsm").val(); 
    pisub = pi.substr(input,answer.length) 
    if (pressed!=="Backspace"&&pressed!=="Delete") count++; 
    else count--; 
    console.log(count); 
}); 

私は混乱している、私はこれを行うことができますかわかりません。テキスト領域でも数字が赤色に変わることが許されますか?私もjqueryのCSSを追加しようとしましたが、それは動作しません。誰かが自分のcodepenでそれを書いてリンクを投稿できますか?

+0

たぶん 'contenteditable' 1で入力した場合は、1の代わりに、4でそれらをオフに開始しますか? http://blog.teamtreehouse.com/native-rich-text-editing-with-the-contenteditable-attribute – Sukima

答えて

1

は、このバイオリンを見てみましょう:https://jsfiddle.net/ebv5n64j/2/

私は何をしようとする基本的にはない何かを一緒に入れています。そこから変更することはできますが、基本的な考え方です。私は自分が正しいものになるまでユーザーを続行させないように鉱山を設計しましたが、簡単に変更することができます。

これはスニペットですが、完全な作業バージョンをjsfiddleあります

// If it's a delete command 
    if(code === 8){ 
    if(!$("#wrong").length > 0) 
     inputCount = (inputCount === 0 ? 0 : --inputCount); 
    $("#pi span").last().remove(); 
    console.log(inputCount); 
    } else if (code >= 48 && code <= 57) { 

    var inputNumber = code - 48; 
    var numSpan; 

    $("#wrong").remove(); 

    numSpan = $("<span>"); // make a new one 

    // Append the number 
    numSpan.text(inputNumber); 
    numSpan.removeClass("incorrect"); 

    if(String(inputNumber) === piDigits[inputCount]){ 
     numSpan.addClass("correct"); 
     inputCount++; 
    } else { 
     numSpan.attr("id", "wrong"); 
    } 

    $("#pi").append(numSpan); 

    placeCaretAtEnd(this); 

    } 
+0

ユーザーが間違っていてもユーザーを続ける方法を教えてください。数字だけが許されるのはいいですが、そうであれば赤でなければ緑です。 –

+0

これは、次のようになります。https://jsfiddle.net/95ocwzer/1/ –

+0

ああ、あまりにもちょうど削除var last = $( "#pi span")。last(); しかし、これを自分のプロジェクトに追加するのに問題があります^^ codepenで。私はこれでうまくいきません:[ –

1

だから私はあなたのペンを見て、あなたはやや過剰に複雑ソリューションをと思っていました。私はより良い方法は、入力textareaの文字列とpiの部分文字列を比較することだと思います。とにかく、ここに固定コードがあり、私は作業用のバージョンでペンにリンクしました。

ところで、3.14の数字4から始める場合は、1(インデックス1の場合)を入力する必要がありますが、入力を取り、1を引くということになります。彼らは

$("#inputsm").keyup(function() { 
var thisLength = parseInt(input) + $(this).val().length - 1; 
if($(this).val().trim() === pi.substring(parseInt(input), thisLength)) { 
    console.log("good so far!"); 
    $(this).removeAttr('style'); 
} else { 
    console.log("ahhh no good!"); 
    $(this).css('background', 'red'); 
} 
}); 

http://codepen.io/msafi/pen/dOKogK/

+0

ありがとうございました。 –

+0

オプションで2より高い数字を追加してもうまくいきません。 –

+0

@UrosTadic私の悪い、私はコードを更新して今すぐ修正しました。入力変数をintではなく文字列として処理していたようです。 parseIntが問題を修正しました。 – msafi

関連する問題