是否可以从几个文本框中创建parseFloat?

时间:2013-07-17 16:08:35

标签: jquery

是否可以使用parseFloat从2个文本框中读取和处理数值?这样的代码对我不起作用。我怀疑问题与第二个文本框有某种联系?!

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

3 个答案:

答案 0 :(得分: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);  
});

这将独立于脚本标记的位置。

答案 1 :(得分: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:语法通常用于检查某些属性。

答案 2 :(得分: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可能附加到不同类型的元素)“这是必需的,当然不需要:个字符。