2013-07-17 42 views
0

是否有可能使用parseFloat從2個文本框中讀取和處理數值?這樣的代碼對我不起作用。我懷疑這個問題與第二個文本框有什麼關係?是否有可能從幾個文本框製作parseFloat?

<div style="padding:10px;"> 
    Enter number 1: <input class="textbox" value=""/> 
</div> 
<div style="padding:10px;"> 
    Enter number 2: <input class="textbox2" value=""/> 
</div> 
<div> 
    <button id="Get">Calculate</button> 
</div> 
<div> 
    <h4>Result: <label id="msg"></label></h4> 
</div> 

<script type="text/javascript"> 
$("button:#Get").click(function() { 
    var num1 = parseFloat($('input:textbox').val()); 
    var num2 = parseFloat($('input:textbox2').val()); 
    var result = ((num1 * num2)); 
    $('#msg').html(result); 
}); 
</script> 

回答

2

您可能會錯誤地閱讀文本框。請嘗試:

$("button#Get").click(function() { 
    var num1 = parseFloat($('input.textbox').val()); 
    var num2 = parseFloat($('input.textbox2').val()); 
    var result = ((num1*num2)); 
    $('#msg').html(result);   
}); 

並查看您是否現在得到正確的結果。您需要按鈕的選擇器是button#Get而不是button:#Get,而文本框是input.textboxinput.textbox2,而不是input:textboxinput:textbox2:語法通常用於檢查某些屬性。

0

我建議:

$("#Get").click(function() { 
    var num1 = parseFloat($('input.textbox').val()), 
    num2 = parseFloat($('input.textbox2').val()), 
    result = ((num1*num2)); 
    $('#msg').html(result);   
}); 

JS Fiddle demo

這個問題似乎是你對jQuery選擇器的困惑;一個:序列選擇器(如:eq(),:first等),而一個句點(.)應該在類名稱的前面。

同樣的id應在文件中是唯一的,所以標籤名稱是不是必需的(除非你的腳本在多個頁面,其中id可能被附加到不同類型元素的運行),當然也沒有需要那裏的:字符。

+0

非常感謝你,大衛!你的建議真的有用! – Chris173

3

問題在於選擇器。

$(document).on('click','button#Get',function() {   
    var num1 = parseFloat($('input.textbox').val()); 
    var num2 = parseFloat($('input.textbox2').val()); 
    var result = ((num1*num2)); 
    $('#msg').html(result); 
}); 

這將獨立於腳本標記的位置。

相關問題