Javascript 使用文本框计算数字

Javascript 使用文本框计算数字,javascript,html,variables,Javascript,Html,Variables,我一直在尝试使用用户在文本框中给出的数字来计算一个数字。我一直在尝试使用以下代码。但是当我尝试测试它时,什么都没有发生。有什么我遗漏的吗?有没有一种方法可以使imprint变量成为全局变量 <form> <p>How many products do you want ingraved?<input id="imprint_amount" name="imprint_amount" type="text"/>

我一直在尝试使用用户在文本框中给出的数字来计算一个数字。我一直在尝试使用以下代码。但是当我尝试测试它时,什么都没有发生。有什么我遗漏的吗?有没有一种方法可以使imprint变量成为全局变量

     <form>
        <p>How many products do you want
            ingraved?<input id="imprint_amount" name="imprint_amount" type="text"/>
        </p>
        <p>Names to be Imprinted(one per
            line)<TEXTAREA COLS=25 NAME="imprint_text" ROWS=5 WRAP=HARD style="resize:none;"></textarea>
        </p>
         <input onclick="imprint_price" type="button" value="Finish"/>
        <p id="total_cost"></p>
    </form>
    <script type="text/javascript">

        function imprint_price() {
            var imprint_cost,
                imprint_quality,
                imprint_total;
            imprint_cost = 10.99;
            imprint_quantity = document.getElementById('imprint_amount');
            imprint_total = $imprint_cost * parseInt(imprint_quantity, 10);
            document.getElementById('total_cost') = "$" + imprint_total;

        }

你想要多少产品
根深蒂固的?

要压印的姓名(每人一个) (行)

函数压印价格(){ var印记成本, 压印质量, 总印迹; 压印成本=10.99; 印记数量=document.getElementById(“印记数量”); 印记_总数=$印记_成本*parseInt(印记_数量,10); document.getElementById('total_cost')=“$”+print_total; }
谢谢,
Traci

您需要使用变量中引用的
值的
属性:

… parseInt(imprint_quantity.value, 10);
对于任意HTML元素,您需要使用(或
innerText
来支持旧IE):


如果按原样分配给表达式,则会引发一个相当准确的异常,请检查浏览器的错误控制台以了解这些异常。

您将希望使用变量中引用的
属性:

… parseInt(imprint_quantity.value, 10);
对于任意HTML元素,您需要使用(或
innerText
来支持旧IE):


按照您的方式分配给表达式应该会引发一个非常准确的异常,请检查浏览器的错误控制台以了解它们。

在这一行中,您需要设置元素的
innerHTML

document.getElementById('total_cost').innerHTML = "$" + imprint_total;
这基本上将

中的文本设置为
$x.xx

这条线也应该是

imprint_quantity = document.getElementById('imprint_amount').value;
它从文本框中检索值

此外,在定义变量时,您编写了“质量”。应该是

imprint_quantity,

在这一行中,您需要设置元素的
innerHTML

document.getElementById('total_cost').innerHTML = "$" + imprint_total;
这基本上将

中的文本设置为
$x.xx

这条线也应该是

imprint_quantity = document.getElementById('imprint_amount').value;
它从文本框中检索值

此外,在定义变量时,您编写了“质量”。应该是

imprint_quantity,

印记数量=document.getElementById(“印记数量”)

=


imprint_quantity=document.getElementById('imprint_amount').value()


让我知道这是否解决了这个问题,这是一个很常见的错误。

print\u quantity=document.getElementById('print\u amount')

=


imprint_quantity=document.getElementById('imprint_amount').value()


让我知道这是否解决了一个常见的错误。

将您的javascript更改为:

<script type="text/javascript">

    function imprint_price() {
        var imprint_cost,
            imprint_quantity,
            imprint_total;
        imprint_cost = 10.99;
        imprint_quantity = document.getElementById('imprint_amount').value;
        imprint_total = imprint_cost * parseInt(imprint_quantity, 10);
        document.getElementById('total_cost').innerHTML = imprint_total;
    }
</script>

函数压印价格(){
var印记成本,
压印数量,
总印迹;
压印成本=10.99;
imprint_quantity=document.getElementById('imprint_amount')。值;
压印总数=压印成本*parseInt(压印数量,10);
document.getElementById('total_cost')。innerHTML=inprint_total;
}

在这里使用JSFIDLE

将您的javascript更改为:

<script type="text/javascript">

    function imprint_price() {
        var imprint_cost,
            imprint_quantity,
            imprint_total;
        imprint_cost = 10.99;
        imprint_quantity = document.getElementById('imprint_amount').value;
        imprint_total = imprint_cost * parseInt(imprint_quantity, 10);
        document.getElementById('total_cost').innerHTML = imprint_total;
    }
</script>

函数压印价格(){
var印记成本,
压印数量,
总印迹;
压印成本=10.99;
imprint_quantity=document.getElementById('imprint_amount')。值;
压印总数=压印成本*parseInt(压印数量,10);
document.getElementById('total_cost')。innerHTML=inprint_total;
}

在这里使用JSFIDLE

print\u数量应该是print\u text for start…你有javascript错误吗?print\u数量应该是print\u text for start…你有javascript错误吗?我不相信这会起作用。总成本不是一个文本框,而是一个段落。编辑:nvm,您将
.value
更改为
.textContent
我认为这行不通。总成本不是一个文本框,而是一个段落。编辑:nvm,您将
.value
更改为
.textContent
谢谢,我完全错过了质量/数量输入。谢谢,我完全错过了质量/数量输入。