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