Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入返回零_Javascript_Html - Fatal编程技术网

Javascript 输入返回零

Javascript 输入返回零,javascript,html,Javascript,Html,我试着自己做一些练习,将Jon Duckett的JavaScript和JQuery书中的元素与Treehouse的JavaScript基础曲目中的元素结合起来。基本上,该程序允许用户输入文本,并查看使用该文本制作标志的成本 当我尝试从输入元素复制文本并将其放置在自定义符号旁边时,我的input.value返回零。如果能帮上忙,我们将不胜感激 var btnCalc=document.getElementById('myButton'); //这就是我的问题所在 var textInput=do

我试着自己做一些练习,将Jon Duckett的JavaScript和JQuery书中的元素与Treehouse的JavaScript基础曲目中的元素结合起来。基本上,该程序允许用户输入文本,并查看使用该文本制作标志的成本

当我尝试从输入元素复制文本并将其放置在自定义符号旁边时,我的input.value返回零。如果能帮上忙,我们将不胜感激

var btnCalc=document.getElementById('myButton');
//这就是我的问题所在
var textInput=document.getElementById('textInput')。值;
var customSign=document.getElementById('customSign');
var totalTiles=textInput.length;
var小计=totalTiles*5;
var=7;
var grandTotal=小计+装运;
btnCalc.addEventListener('click',Calculate');
函数计算(){
//这里呢
document.getElementById('customSign')。innerHTML=textInput;
document.getElementById('totalTiles')。textContent=totalTiles;
document.getElementById(“小计”).textContent=小计;
document.getElementById('shipping')。textContent=shipping;
document.getElementById('grandTotal')。textContent=grandTotal;
}
h2{
文本对齐:居中;
}
跨度{
字体大小:粗体;
}
div{
保证金:0自动;
宽度:400px;
溢出:自动;
}
保险商实验室{
列表样式类型:无;
}
#右柱{
浮动:对;
}
#左列{
浮动:左;
}
#输入表格{
文本对齐:居中;
}

Duckett第2章示例
你好,莫莉,请检查您的订单:
  • 自定义标志:
  • 瓷砖总数:
  • 小计:
  • 装运:
  • 总计:
    蒙塔古酒店
  • 14
  • 70美元
  • 7美元
  • 77美元
算计
变量必须在函数内部,否则调用函数时其值已经为空

var btnCalc=document.getElementById('myButton'); btnCalc.addEventListener('click',Calculate')


将计算部分移动到函数

var btnCalc=document.getElementById('myButton');
//这就是我的问题所在
var textInput=document.getElementById('textInput');
var customSign=document.getElementById('customSign');
btnCalc.addEventListener('click',Calculate');
函数计算(){
var totalTiles=textInput.value.length;
var小计=totalTiles*5;
var=7;
var grandTotal=小计+装运;
//这里呢
document.getElementById('customSign')。innerHTML=textInput.value;
document.getElementById('totalTiles')。textContent=totalTiles;
document.getElementById(“小计”).textContent=小计;
document.getElementById('shipping')。textContent=shipping;
document.getElementById('grandTotal')。textContent=grandTotal;
}
h2{
文本对齐:居中;
}
跨度{
字体大小:粗体;
}
div{
保证金:0自动;
宽度:400px;
溢出:自动;
}
保险商实验室{
列表样式类型:无;
}
#右柱{
浮动:对;
}
#左列{
浮动:左;
}
#输入表格{
文本对齐:居中;
}

Duckett第2章示例
你好,莫莉,请检查您的订单:
  • 自定义标志:
  • 瓷砖总数:
  • 小计:
  • 装运:
  • 总计:
    蒙塔古酒店
  • 14
  • 70美元
  • 7美元
  • 77美元
算计
Lixus是对的。您只需要将这5行从计算函数外部移动到计算函数内部。这是一把小提琴:谢谢!JavaScript中有没有定义全局变量的方法?我习惯于用Java编写,我假设变量可以被函数访问。变量可以在函数中访问,但由于函数外部变量的上下文以及调用后的上下文,您会出现一些逻辑错误。从技术上讲,这是您在代码中所做的,但是在脚本运行完成后,它们的值不会被保留,当您调用它们时,您必须在函数中再次设置它们。哦,我明白了。因此,当加载页面时,脚本将运行。单击按钮时,脚本再次运行,但只有事件侦听器运行,它无法知道存储在脚本第一部分中的变量。这接近正确吗?
function Calculate() {
  var textInput = document.getElementById('textInput').value;
  var customSign = document.getElementById('customSign');
  var totalTiles = textInput.length;
  var subtotal = totalTiles * 5;
  var shipping = 7;
  var grandTotal = subtotal + shipping;

  document.getElementById('customSign').innerHTML = textInput;
  document.getElementById('totalTiles').textContent = totalTiles;
  document.getElementById('subtotal').textContent = subtotal;
  document.getElementById('shipping').textContent = shipping;
  document.getElementById('grandTotal').textContent = grandTotal;
}