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 焦点来获取选定的输入字段。

 $(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

您必须实现一个侦听焦点事件的侦听器。

看一下这个:

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 回答
0

您需要一个事件处理程序,在这种情况下用于focus事件

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