2012-11-12 42 views
-1

一直嘗試過去的幾個小時,但似乎無法使其工作。使用jQuery .val()執行計算返回值

我需要計算總和的平方根。似乎存在一個javascript方法來使用Math.sqrt()計算此(http://www.w3schools.com/jsref/jsref_sqrt.asp)。我怎樣才能使用這個方法來計算我的總和的平方根?您在兩個輸入字段填寫並正常工作後,將顯示總和..

DEMO或下面的代碼:

$(document).ready(function(){ 
    $('#beers').keyup(calculate); 
    $('#ranking').keyup(calculate); 

function calculate(e) 
{ 
    $('p#sum').html($('#beers').val() * 5/$('#ranking').val() + 1); //calculation of the two fields 
     /*Math.sqrt()*/ //This is the function to calculate the square root 
} 
}); 
+0

通常,您會希望_call_函數。 – Shmiddty

+1

@Shmiddty他是。這是綁定到兩個關鍵事件。 – Cecchi

+0

@Cecchi他叫'Math.sqrt'? Coulda騙了我。 – Shmiddty

回答

1

你需要做的是呼叫Math.sqrt通過傳遞所需的正方形數根源:http://jsfiddle.net/zLKgT/2/

$('#beers').keyup(calculate); 
$('#ranking').keyup(calculate); 

function calculate(e) { 
    var maths = $('#beers').val() * 5/$('#ranking').val() + 1; 
    $('p#sum').text(maths); 
    $('p#squareroot').text(Math.sqrt(maths)); 
}​ 

您不需要事先將任何內容轉換爲數字,因爲您正在使用數字對象,並且不使用運算符(用於添加和連接)。 Javascript會自動將val轉換爲數字。

+0

感謝您的答覆和澄清Schmiddty,非常有幫助。在你的例子中逗號後面有沒有任何可能的方法將數字舍入爲2位數?例如:$('p#squareroot')。text(Math.sqrt(maths.round(number).toFixed(2)));對不起,可能是一個愚蠢的問題,我對jQuery很新穎 – Yunowork

+0

@Yunowork這和jQuery沒什麼關係。這都是標準的JavaScript。但是,是的,'maths.toFixed(2)'和'Math.sqrt(數學).toFixed(2)'應該有效。但是,某些瀏覽器可能存在一些兼容性問題。 – Shmiddty

+0

一個常見的替代方法是這樣的:'Math.round(numberToRound * 100)/ 100'將四捨五入到小數點後兩位。你可以用10來表示一位小數,1000表示三位小數,等等。 – Shmiddty

0

培訓相關例子,你的問題,將其轉換爲一個數字,用var「答案「你可以在HTML中使用jQuery或你喜歡

var numericFormat = new Number($('#beers').val() * 5/$('#ranking').val() + 1) 
var answer = Math.sqrt(numericFormat); 
+0

Javascript會自動將其轉換爲數字。 – Shmiddty

1

首先任何其他方式顯示它您需要將其轉換成一個數 因爲.VAL()返回一個字符串,你在這裏乘兩個字符串..

使用parseInt()parseFloat(),以轉換爲數字第一..

var beers = parseInt($('#beers').val() , 10); 
var rankings = parseInt($('#ranking').val() , 10); 

var sqrt = Math.sqrt((beers * 5)/ (rankings + 1)) 

$('p#sum').html(sqrt); 

Check Fiddle

+1

沒有必要。這些值在執行數學運算時會自動轉換爲數字。 – Shmiddty

+0

@Shmiddty ..好點..我只是想更清楚..這不是必需的,但我覺得這是一個更好的做法.. –