使用Javascript和HTML5输出,但我没有得到输出

使用Javascript和HTML5输出,但我没有得到输出,javascript,html,Javascript,Html,我正在制作一个计算器,它可以计算出一笔房地产交易的州特定销售税。我知道我的“normalrtfCalc”函数可以工作,但我的问题是将表单中的“金额”输入函数,并将结果输入输出。任何帮助都将不胜感激。 谢谢 这是我的HTML: <form id="rtfCalc" oninput="updateOutput( )"> <input name="sale amount" type="number" value="0" /> <output name="t

我正在制作一个计算器,它可以计算出一笔房地产交易的州特定销售税。我知道我的“normalrtfCalc”函数可以工作,但我的问题是将表单中的“金额”输入函数,并将结果输入输出。任何帮助都将不胜感激。 谢谢

这是我的HTML:

<form id="rtfCalc" oninput="updateOutput( )">
    <input name="sale amount" type="number" value="0" />
    <output name="transfer fee" for="sale amount"></output>
</form>

这是我的JS:

function updateOutput() {
    var form = document.getElementById("rtfCalc");
    var out = form.elements["transfer fee"];
    var amount = parseInt(form.elements["sale amount"].value);

    function normalrtfCalc(amount) {
        if (amount <= 150000) {
            out.value = Math.ceil(amount / 500) * 2;
        } else if (amount <= 350000) {
            if ((amount - 150000) <= 50000) {
                out.value = 600 + (Math.ceil((amount - 150000) / 500) * 3.35);
            } else {
                out.value = 935 + (Math.ceil((amount - 200000) / 500) * 3.9);
            }
        } else {
            if ((amount - 200000) <= 350000) {
                out.value = 2735 + (Math.ceil((amount - 200000) / 500) * 4.8);
            } else if ((amount - 550000) <= 300000) {
                out.value = 4655 + (Math.ceil((amount - 555000) / 500) * 5.3);
            } else if ((amount - 850000) <= 150000) {
                out.value = 7835 + (Math.ceil((amount - 850000) / 500) * 5.8);
            } else {
                out.value = 9575 + (Math.ceil((amount - 1000000) / 500) * 6.05);
            }
        }
    }
};
函数updateOutput(){
var form=document.getElementById(“rtfCalc”);
var out=形式要素[“转让费”];
var amount=parseInt(form.elements[“sale amount”].value);
函数normalrtfCalc(金额){

如果(amount您的代码有几处错误,我将在下面发布并在评论中解释:

function updateOutput() {
    var form = document.getElementById("rtfCalc");
    var out = form.elements["transfer_fee"];
    var amount = parseInt(form.elements["sale_amount"].value);

    function normalrtfCalc(amount) { // an equal sign(=) before the opening curly bracket is invalid syntax; remove it, and execute the function as stated below, and your code works.

        if (amount <= 150000) {
            out.value = Math.ceil(amount / 500) * 2;

        } else if (amount <= 350000) {
            if ((amount - 150000) <= 50000) {
                out.value = 600 + (Math.ceil((amount - 150000) / 500) * 3.35);
            } else {
                out.value = 935 + (Math.ceil((amount - 200000) / 500) * 3.9);
            }
        } else {
            if ((amount - 200000) <= 350000) {
                out.value = 2735 + (Math.ceil((amount - 200000) / 500) * 4.8);
            } else if ((amount - 550000) <= 300000) {
                out.value = 4655 + (Math.ceil((amount - 555000) / 500) * 5.3);
            } else if ((amount - 850000) <= 150000) {
                out.value = 7835 + (Math.ceil((amount - 850000) / 500) * 5.8);
            } else {
                out.value = 9575 + (Math.ceil((amount - 1000000) / 500) * 6.05);
            }
        }
    }
    normalrtfCalc(amount); //you have to call the function in order for it to execute.
};
函数updateOutput(){
var form=document.getElementById(“rtfCalc”);
var out=形式要素[“转让费];
var amount=parseInt(form.elements[“sale_amount”].value);
函数normalrtfCalc(amount){//开头的花括号前的等号(=)是无效语法;请将其删除,然后按如下所述执行函数,代码就可以工作了。

如果(
表中的(
)、
表中的(
out
amount
不起作用?你能尝试一下
console.log(var)
)吗?请不要在回答问题时编辑你的问题。这是一个众所周知的变色龙问题,在这里它们不受欢迎。据我所知(这是很少的)VAR表单是调用输入和输出表单值,并允许它们被我的函数修改。我在输出中没有得到一个值,所以它将是“OUT”,这是不起作用的。@ USS210839如果这个答案解决了你的问题,请考虑接受它(当它让你)。,通过单击答案左侧向下箭头下的略图复选标记。我删除了“=”(输入错误)并调用了该函数,但我仍然没有在“输出”中获得新值我的领域form@user2108839我觉得这很奇怪,因为我上面链接的演示程序运行良好。你在哪个浏览器中测试它?@user2108839它在safari中对我运行良好。你能在另一个标题下更新你的代码,显示你当前拥有的吗?我现在收回它的工作状态!!非常感谢你的大力帮助!