Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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
提交表单后,HTML/Javascript页面正在重置_Javascript_Html_Xhtml - Fatal编程技术网

提交表单后,HTML/Javascript页面正在重置

提交表单后,HTML/Javascript页面正在重置,javascript,html,xhtml,Javascript,Html,Xhtml,我正在学习使用HTML和Javascript制作表单。当我去提交我的表单时,它会处理它,我可以看到结果,但是页面会很快重置,以便表单返回到它的开始状态。如何确保功能完成后页面不会重置 以下是表单的HTML以及处理表单的函数: <form name="calculator" onsubmit="return calculate(this);"> Enter the value of the house: $ <input type=

我正在学习使用HTML和Javascript制作表单。当我去提交我的表单时,它会处理它,我可以看到结果,但是页面会很快重置,以便表单返回到它的开始状态。如何确保功能完成后页面不会重置

以下是表单的HTML以及处理表单的函数:

<form name="calculator" onsubmit="return calculate(this);">
            Enter the value of the house: $
            <input type="text" name="homeValue" id="homeValue" size="7" /><br>
            <select name="selMortgage" id="selMortgage">
                <option>Select a mortgage length</option>
                <option>15-year mortgage</option>
                <option>30-year mortgage</option>
            </select></br>
            <p class="form"><input type="checkbox" name="chkDiscount" value="discount"/>Good Credit Discount?</p>
            <input type="submit" value="Calculate" />
            <div id="result"></div>
</form>

function calculate(form) {
    var amountEntered = form.homeValue.value;
    var termLength;
    var interestRate;
    var calc;
    document.getElementById("result").innerHTML = "hi";
    if (!/^\d+(\.\d{1,2})?$/.test(amountEntered))
    {
        alert("You did not enter an amount of money");
        //form.homeValue.focus();
        return;
    }
    if (form.chkDiscount.checked == true)
    {
        interestRate = .05;
    }
    else
    {
        interestRate = .06;
    }
    if (form.selMortgage.selectedIndex == 0)
    {
        alert("Select a mortgage length");
    }
    else if (form.selMortgage.selectedIndex == 1)
    {
        termLength = 15;
    }
    else if (form.selMortgage.selectedIndex == 2)
    {
        termLength = 30;
    }
    calc = (Math.pow(1+interestRate,termLength) * amountEntered)/(termLength*12);
    document.getElementById("result").innerHTML = calc.toFixed(2);
}

输入房屋的价值:$

选择抵押贷款期限 15年按揭 30年按揭

良好的信用折扣

函数计算(表格){ var amountered=form.homeValue.value; 变量项长度; 酯酸var; var-calc; document.getElementById(“结果”).innerHTML=“hi”; 如果(!/^\d+(\.\d{1,2})$/.test(amountered)) { 警告(“您没有输入金额”); //form.homeValue.focus(); 返回; } if(form.chkDiscount.checked==true) { 利率=.05; } 其他的 { 利率=.06; } if(form.selMortgage.selectedIndex==0) { 警报(“选择抵押贷款期限”); } else if(form.selMortgage.selectedIndex==1) { 终端长度=15; } else if(form.selMortgage.selectedIndex==2) { 终端长度=30; } 计算=(数学功率(1+利率,术语长度)*未居中)/(术语长度*12); document.getElementById(“结果”).innerHTML=calc.toFixed(2); }
由于您正在提交表单,由于页面重新加载,这些值将丢失。
您可以尝试发布您的值,然后在表单元素上分配发布值,这样即使在刷新之后,您仍然能够看到提交的发布数据。

由于您正在提交表单,这些值会由于页面重新加载而丢失。
您可以尝试发布您的值,然后在表单元素上分配POST值,这样即使在刷新后,您仍然能够看到提交的POST数据。

提交表单时,将调用JS函数calculate。由于函数不返回任何值,因此将假定为未定义。在JS中,未定义的将被假定为空,表单将被提交到服务器并重新加载。这就是您丢失数据的原因。从您的代码中,页面只执行一些JS代码。因此,我们可以阻止提交表单以保留您的数据。您可能需要在计算函数中返回false以防止提交。示例如下:

document.getElementById(“结果”).innerHTML=calc.toFixed(2);
返回false

提交表单时,将调用JS函数calculate。由于函数不返回任何值,因此将假定为未定义。在JS中,未定义的将被假定为空,表单将被提交到服务器并重新加载。这就是您丢失数据的原因。从您的代码中,页面只执行一些JS代码。因此,我们可以阻止提交表单以保留您的数据。您可能需要在计算函数中返回false以防止提交。示例如下:

document.getElementById(“结果”).innerHTML=calc.toFixed(2); 返回false

试试这个:

只需使用
返回false位于javascript函数的末尾。

尝试以下操作:


只需使用
返回false。

看起来您缺少了一个
返回false。
看起来您缺少了一个
返回false。