Javascript 使用jQuery更新网页。为什么';这个代码不起作用吗?

Javascript 使用jQuery更新网页。为什么';这个代码不起作用吗?,javascript,jquery,html,Javascript,Jquery,Html,我正试着为一个简单的物理方程建立一个计算器。使用web表单收集数据,然后将答案返回并更新到原始网页上。然而,无论我做什么或做什么改变,我都无法在网页上显示答案。为什么这不起作用 HTML: 物理计算器 F=MA计算器 部队: 质量: 加速: Javascript: $(document).ready(function() { $('#calculate').on('click', function() { var F = $('#force').val();

我正试着为一个简单的物理方程建立一个计算器。使用web表单收集数据,然后将答案返回并更新到原始网页上。然而,无论我做什么或做什么改变,我都无法在网页上显示答案。为什么这不起作用

HTML:


物理计算器
F=MA计算器
部队:
质量:
加速:

Javascript:

$(document).ready(function() {
$('#calculate').on('click', function() {
        var F = $('#force').val();
        var M = $('#mass').val();
        var A = $('#acc').val();

        if (F!=="number" && typeof M==="number" && typeof A==="number") {   
            var FMA = M*A;
            $('#answer').html("The force is " +FMA " Newtons.")
        }


        else if (typeof M!=="number" && typeof F==="number" && typeof A==="number") {
            var MFA = F/A;
            var $output2 = $('<p>The mass is ?? kg.</p>');
            $('#answer').html("The mass is " +MFA " kg.")
        }


        else if (typeof A!=="number" && typeof F==="number" && typeof M==="number") {
            var AFM = F/M;
            $('#answer').html("The acceleration is " +AFM " metres per second sqaured.");
        }


        else {
            $('#answer').html("A calculation error has occurred.");
        }
});
$(文档).ready(函数(){
$('#calculate')。在('click',function()上{
var F=$('#force').val();
var M=$('#mass').val();
变量A=$('#acc').val();
如果(F!=“数字”和&typeof M==“数字”和&typeof A==“数字”){
var FMA=M*A;
$('#answer').html(“力是”+FMA“牛顿”)
}
else if(类型M!==“数字”和类型F==“数字”和类型A==“数字”){
var MFA=F/A;
变量$output2=$('质量为±kg.

'); $('#答案').html(“质量为“+MFA”kg.”) } else if(A的类型!==“数字”和F的类型==“数字”和M的类型==“数字”){ var-AFM=F/M; $('#answer').html(“加速度为“+AFM”米/秒sqaured”); } 否则{ $('#answer').html(“发生了计算错误。”); } });

}))

您有
typeof
和连接错误。
(如果您对无限结果不感兴趣)

$('#calculate').on('click', function() {

    var F = parseInt( $('#force').val(), 10);
    var M = parseInt( $('#mass').val(), 10);
    var A = parseInt( $('#acc').val(), 10);
    var msg = "A calculation error has occurred.";

           if (isNaN(F) && M && A) {
        msg = "The force is "+ (M*A) +" Newtons."; 
    } else if (isNaN(M) && F && A) {
        msg = "The mass is "+ (F/A) +" kg.";
    } else if (isNaN(A) && F && M) {
        msg = "The acceleration is "+ (F/M) +" metres per second sqaured.";
    }

    $('#answer').html(msg);
});

我编辑了你的代码。我更喜欢使用isNaN函数来检查值是否实际上是一个数字。连接答案字符串时,您还缺少一个加号

$('#calculate')。在('click',function()上{

var F=$('#force').val(),
M=$('#mass').val(),
A=$('#acc').val();
if(isNaN(F)和&!isNaN(M)和&!isNaN(A)){
var FMA=M*A;
$('#answer').html(“力是”+FMA+“牛顿”);
}else if(isNaN(M)&&&!isNaN(F)&&!isNaN(A)){
var MFA=F/A;
变量$output2=$('质量为±kg.

'); $('#answer').html(“质量为“+MFA+”kg”); }else if(isNaN(A)&&&!isNaN(F)&&&!isNaN(M)){ var-AFM=F/M; $('#answer').html(“加速度为“+AFM+”米/秒平方”); }否则{ $('#answer').html(“发生了计算错误。”); }
}))


这里有一个提琴:

不仅用字符串连接。您需要解析为INT,这样number的类型就可以工作了。您还可以使用isNaN功能:

  if (isNaN(F) && !isNaN(M) && !isNaN(A)) {
        var FMA = M*A;
        $('#answer').html("The force is " +FMA +" Newtons.")
    }

    else if (isNaN(M) && !isNaN(F) && !isNaN(A)) {
        var MFA = F/A;
        var $output2 = $('<p>The mass is ?? kg.</p>');
        $('#answer').html("The mass is " +MFA + " kg.")
    }

    else if (isNaN(A) && !isNaN(F) && !isNaN(M)) {
        var AFM = F/M;
        $('#answer').html("The acceleration is " +AFM + " metres per second sqaured.");
    }

    else {
        $('#answer').html("A calculation error has occurred.");
    }
if(isNaN(F)和&!isNaN(M)和&!isNaN(A)){
var FMA=M*A;
$('#answer').html(“力是”+FMA+“牛顿”)
}
else if(isNaN(M)&&&!isNaN(F)&&!isNaN(A)){
var MFA=F/A;
变量$output2=$('质量为±kg.

'); $('#答案').html(“质量为“+MFA+”千克”) } else if(isNaN(A)&&&!isNaN(F)&&&!isNaN(M)){ var-AFM=F/M; $('#answer').html(“加速度为“+AFM+”米/秒sqaured”); } 否则{ $('#answer').html(“发生了计算错误。”); }
必须检查是否有任何值为空。我希望能帮助你


在这里测试:

感谢JS Fiddle代码,它完全按照计划工作


但是,当我以同样的方式更改自己的代码时,它似乎不起作用。我需要在自己的代码中包含JS Fiddle使用的一些技巧吗?

啊,谢谢。我没有发现那条蛇。我遇到的问题是,“#answer”元素中没有显示任何内容。通过在本地托管jquery而不是链接到托管它的站点来解决。
    var F = $('#force').val(),
        M = $('#mass').val(),
        A = $('#acc').val();

    if (isNaN(F) && !isNaN(M) && !isNaN(A)) {

        var FMA = M*A;
        $('#answer').html("The force is " + FMA + " Newtons.");

    } else if (isNaN(M) && !isNaN(F) && !isNaN(A)) {

        var MFA = F/A;
        var $output2 = $('<p>The mass is ?? kg.</p>');
        $('#answer').html("The mass is " + MFA + " kg.");

    } else if (isNaN(A) && !isNaN(F) && !isNaN(M)) {

        var AFM = F/M;
        $('#answer').html("The acceleration is " + AFM + " metres per second squared.");

    } else {

        $('#answer').html("A calculation error has occurred.");

    }
  if (isNaN(F) && !isNaN(M) && !isNaN(A)) {
        var FMA = M*A;
        $('#answer').html("The force is " +FMA +" Newtons.")
    }

    else if (isNaN(M) && !isNaN(F) && !isNaN(A)) {
        var MFA = F/A;
        var $output2 = $('<p>The mass is ?? kg.</p>');
        $('#answer').html("The mass is " +MFA + " kg.")
    }

    else if (isNaN(A) && !isNaN(F) && !isNaN(M)) {
        var AFM = F/M;
        $('#answer').html("The acceleration is " +AFM + " metres per second sqaured.");
    }

    else {
        $('#answer').html("A calculation error has occurred.");
    }