2013-08-20 53 views
0

我已經設置了一個函數來處理我的度量轉換,因爲它沒有那麼無縫。我想將lbs轉換爲kg和kg轉換成lbs。我遇到的問題是使用jQuery的更改功能。它導致轉換隻發生在一個變化上,但有時我只想從lbs到kg轉換回來,並且卡住並將lbs轉換爲更多lbs或kg到更多kg。任何幫助表示讚賞。這裏是我的下面從kg到lb和lb到kg客戶端的無縫轉換

$("#wUnits").change(function() { 
     var approx = 2.2; 
     if ($(this).val() == "lbs") { 
      value = $("#txtWeight").val()/approx; 
      $('#wValue').val(value.toFixed(2)); 
     } else if ($(this).val() == "kg") { 
      value = $("#txtWeight").val() * approx; 
      $('#wValue').val(value.toFixed(2)); 
     } else { 
      var value = ""; 
      $('#wValue').val(value); 
     } 
    }); 

代碼和下面是我的標記

<select id="wUnits"> 
<option value="">--</option> 
<option value="lbs">lbs</option> 
<option value="kg">kg</option> 
    </select> 

理想我想acheive是使用下拉轉換之間的無縫過渡。

+2

您可以張貼在行動問題的小提琴? –

+0

@ user2544318如果你把我有的東西添加到jsfiddle你應該能夠重現發生/問題。 –

+3

[你的代碼似乎在做你想做的事](http://jsfiddle.net/z23Gg/),雖然用戶界面看起來很混亂(如果我正確的話)。 – bfavaretto

回答

1

我的理解是,你要轉換,當你改變的<select>

我改變了你的一些代碼值發生不公平,這是很好的緩存變量,在這種情況下,另外,我分開在<select>更改和keyupchange輸入上的#txtWeight輸入上觸發的函數代碼爲conversion

編輯,實施傑森Sperske的想法,並增加了一個額外<span>與所得的單位,以免混淆。它應該是:

HTML:

Convert <input type="text" id="txtWeight" /> 
    <select id="wUnits"><br> 
    <option value="0">--</option> 
    <option value="0.45359237">lbs</option> 
    <option value="2.2">kg</option> 
    </select><br> 
    Result: <input type="text" id="wValue" /><span id='rUnits' 

JS:

var $units = $("#wUnits"); 
var $wvalue = $('#wValue'); 
var $txtweight = $("#txtWeight"); 
var $runits = $('#rUnits'); 

$units.change(conversion); 
$txtweight.on('keyup change',conversion); 

function conversion() { 
    var value = $txtweight.val() * $units.val(); 
    if(value !== 0) { 
    $wvalue.val(value.toFixed(2)); 
    $runits.text($units.children(':gt(0):not(:selected)').text()); 
    } else { 
    $wvalue.val(""); 
    $runits.text(''); 
    } 
} 

JSBin Demo

+0

如果你去JSBin上的解決方案,如果你把它放在215.00它給你97.73磅,這實際上是一個轉換爲公斤 –

+0

爲什麼不只是像下面這樣烘烤轉換比率到選擇列表:http://jsbin.com/ AVOSOBo/1/ –

+0

@JasonSperske如果你採取你已經提出的解決方案,並添加9.00磅,做一個轉換爲公斤它應該是19.80然後嘗試採取215磅和轉換爲公斤它應該是97.73,但它產生44.32 –

相關問題