2016-03-25 16 views
0

私は、比較するオプション付きの小数点から桁上げ変換器ページを作成しています。私のバイナリから小数点までの関数は正常に動作し、jQueryを実行してDOMに表示することができます。私の比較関数はコンソールでうまく動作しますが、jQueryのクリック機能で呼び出されたときは機能しません。 Console.logは、jQuery関数の外部では同じ番号で動作しますが、内部では動作しません。 https://jsfiddle.net/deniswells59/ekdtk60t/関数はjQueryではなくコンソールで機能します

//simple compare function 
var result = ""; 
var assert_equal = function(bin, dec) { 
    if(bin === dec){ 
     return result = ("They are Equal!"); 
    } else { 
     return result = ("They aren't Equal!"); 
    }; 
}; 

//this works fine as well as .binaryToDecimal(), which I didn't include 
$("#convert").click(function(){ 
    var value = $("#binToConvert").val(); 
    var valueConverted = value.binaryToDecimal(); 
    $("#display").html("<span class='results'>"+value+"</span> converts to <span class='results'>"+valueConverted+"</span>"); 
}); 

//this ALWAYS displays "They aren't Equal!"; console.log says otherwise 
$("#compare").click(function() { 
    var binary =$("#binary").val(); 
    var decimal =$("#decimal").val(); 
    binary = binary.binaryToDecimal(); 
    assert_equal(binary, decimal); 
    $("#display").html("<span class='results'>"+result+"</span>"); 
}); 
+0

あなたが一緒にjsfiddleを入れることはできますか? – mwilson

+0

説明のために、入力ボックスにbinaryToDecimal関数と追加するデータを追加する必要があります。 – Andy

+0

私はjsfiddleを追加しました:https://jsfiddle.net/deniswells59/ekdtk60t/ –

答えて

0

あなたは、彼らが同じタイプだことを確認する必要があり

var assert_equal = function(bin, dec) { 
if(bin.binaryToDecimal() == dec){ 
return result = ("They are Equal!"); 
+0

それは働いた!あなたはなぜ202!= 202のjQuery関数を知っていますか?それらは両方とも文字列型です。 –

1

以下のようにあなたがassert_equalに機能を追加する必要があります。ここにjsfiddleです。今すぐbinは数字で、decは文字列です(jQueryの.val()は、ユーザーが数字を入力しても常に文字列を返すため)。 binaryToDecimal関数が数値を返すため、binは数値です。

assert_equal機能で比較する前に、decbinを同じタイプに変換するだけです。それ以外の場合は、タイプを気にしない場合は==を使用してください。このような

何かがトリックを行う必要があります。

var assert_equal = function(bin, dec) { 
    if(parseInt(bin) === parseInt(dec)){ 
    return result = ("They are Equal!"); 
    } else { 
    return result = ("They aren't Equal!"); 
    }; 
}; 
関連する問題