0

3 つの入力 [テキスト] を含む動的な短い長さのコンバーターを構築しています。そのようです

<input type='text' class='bx' id='cm'> Centimeter<br>
<input type='text' class='bx' id='m'> Meter<br>
<input type='text' class='bx' id='km'> Kilometer<br>

効果は次のとおりです。「メートル」をクリックすると値が「」になり、値を入力すると「センチメートル」と「キロメートル」の値は値(...)に等しくなります。

jquery は次のようになります。

$(function() {

var selected = ????;

// do i need something here to empty the input it is focused on?

$("#cm").val(selected * 545);
$("#km").val(selected * 545);
$("#m").val(selected * 453);

})

選択した var が、フォーカスされているテキスト入力の値と等しくなるようにします。

これどうやってするの?

例の計算は有益です。

4

4 に答える 4

2

jQuery focus を使用して、選択した入力フィールドを取得できます。

 $(function() {
         $("input.bx").focus({
          var selected  =parseInt(this.value, 10);
              this.value = ''; //this line will remove text from selected input.
              $("#cm").val(selected * 545);
              $("#km").val(selected * 545);
             $("#m").val(selected * 453);
         });
    })
于 2012-09-30T19:17:25.133 に答える
1
var selected = $(this).val();

// // あなたが書いたコードは、あなたのページが最初にロードされたときだけ機能します。クリックするたびに動作させたい場合は、入力のフォーカス イベントを処理する必要があります。

 $('#cm , #km , #m').on('focus', function() {
        var selected = parseInt($(this).val() , 10) ; // Will convert to a Int

        $("#cm").val(selected * 545);
        $("#km").val(selected * 545);
        $("#m").val(selected * 453);

    });

しかし、ここではフォーカスイベントよりもぼかしイベントの方が理にかなっていると思います。

フィドル

選択した入力の値を指すもの

于 2012-09-30T19:13:17.457 に答える
0

この場合は event のイベント ハンドラーが必要focusです

$(function() {
     $(".bx").focus(function(e) {
         var selectedval = this.value,
             selectedtype = this.id;
         …
     });
});
于 2012-09-30T19:17:32.293 に答える
0

focus イベントをリッスンするリスナーを実装する必要があります。

これをチェックしてください:

http://api.jquery.com/focus/

$('.bx').focus(function() {
    var id = $(this).attr("id");
    if (id === "cm") {
        alert('Handler for .focus() called cm');
    }
    else if (id === "m") {
        alert('Handler for .focus() called m');
    }
    else if (id === "km") {
        alert('Handler for .focus() called km');
    }
});
于 2012-09-30T19:16:10.733 に答える