2011-08-04 11 views
3

選択値が変更された場合でも、選択値をテキストフィールドにコピーしたいとします。
私のコード選択値からテキスト値をコピー

$(document).ready(function() { 
    $('#select').change(function() { 
     $('#text').val($('#select').val()); 
    }); 
}); 

は、このコードは、私は、マウスを使用しての選択値を変更する場合にのみ動作しますが、私はそれを集中し、それが動作しないアップ/ダウン矢印キーを押します。

+1

キーボードでそれを変更するには、まだイベントを発生しますが、要素がフォーカスを失うまで、それは発生しません。 –

答えて

5

これは予想される動作です。オプションが選択されるまで、実際の値は変更されません。上/下矢印を使って選択した後、「Enter」を押しても機能します。

あなたは試してみて、あなたがしたい場合はより多くのイベントをバインドすることができ、例:

$('#select').bind('change click keyup', function() { 
    $('#text').val($(this).val()); 
}); 

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

3

あなたの.changeハンドラに加えて、このjQuery Watch Pluginを試みることができますか?何かのように:

$(document).ready(function() { 
    $('#select').change(onChange); 
    $("#select").watch('value', onChange); 

    function onChange(){ 
     $('#text').val($('#select').val()); 
    } 
}); 

あなたはあなたのページにそのプラグインを含める必要があります。

1
$('#select').keydown(function() 
{ 
    ... 
}); 

または

$('#select').keyup(function() 
{ 
    ... 
}); 

、ニーズに応じて動作するはずです。

1

使用:

$('#select').bind('change keypress click', function) 
関連する問題