1

タイトルを定義するのは難しい^^

フィールドを入力する必要があります。例:1つは色(文字列)を入力し、もう1つは色のコード(varchar)を入力します。

このように:|緑| |#657EC9 | (ランダムなカラーコードのみ)

カラーコードを見つける方法ではなく、値または変数を別の値または変数と照合する方法を学びたいです。それはほんの一例です。

私が知りたいのは、2番目のフィールドに入力するときに、どのようにしてフィールドの1つを自動生成するのが最善かということです。最初のフィールドに「緑」と入力すると、コードが2番目のフィールドに自動的に表示され、その逆も同様です。いくつかの色でやりたいだけです。

私はPHP、HTML、およびJavascriptに非常に慣れていないため、問題をどのように処理するかについて、いくつかの良いアドバイスが必要になる可能性があります。

ありがとうございました

4

1 に答える 1

1

私は値をオブジェクトリテラルにマップする傾向があるので、次のようになります。

var colors = {
    Green:'#657EC9',
    Red:'#00ffff'
}

colors[fieldInputVal]これで、fieldInputValが「Green」または「Red」の場合に値を取得できますが、もちろん、実際にそこにプロパティがあるかどうかをテストする必要があります。オブジェクトリテラルは、JSでswitchステートメントを使用することがめったにない主な理由です。

イベントJSについては、IE8以下をサポートしている場合に必要となるattachEventとaddEventListenerについて説明するのではなく、怠惰になってJQueryを使用します。自分で正規化してJQueryをスキップする場合は、quirksmode.orgで「addEventcontest」を検索してください。

$('.input_one').change( function(){
    //note: only fires after the field loses focus - you tab out or focus another field
    var inputVal = $(this).val();
    if(colors[inputVal] !== undefined){
        $('.input_two').val(colors[inputVal]);
    }
} );

注:このコードの構文の誤りについてはテストしていません。

より柔軟に「緑」または「緑」を受け入れたい場合は、ルックアップに使用する前に最初の文字を大文字にします。すべての文字追加でルックアップを実行するには、keyupまたはkeydownイベントをルックアップする必要があります(誰かがキーを押したときにブラウザーが壊れないように、keyupを使用することをお勧めします)。

于 2012-07-31T13:19:37.390 に答える