0

我有一个标准表单,它从一个文本框中获取值来<input type="text" ...操作它,并将信息放入一个 div 或另一个文本框中,视情况而定。

一切都在,直到我犯了一个错误。我在我的文本框周围添加了 a 并且在调用函数时<form>没有添加 a 。return false花了几秒钟才发现问题,但我注意到了一些有趣的事情:console.log 信息被放置在位置栏中。

function getTotal(){
....
var total=end-start;
....
console.log(total);
}

正如预期的那样(因为没有包含 return false ),div 没有被写入,文本框也没有被写入,但是....查看屏幕截图。

这是怎么发生的?为什么要写入地址栏?

下面的屏幕截图:(我无法为它创建一个 jsfiddle,因为它需要一个表单提交按钮。)我在<input type="text" id="start">文本框中输入了 22 和 77 <input type="text" id="end">

在此处输入图像描述

一切都适用于:

<form>
<input type="text" name="start" id="start"><br/>
<input type="text" name="end" id="end"><br/>
<button onClick="checkTotal(); return false; ">Check Total</button><br/>
<input type="text" id="aaa"><br/>
</form>

删除 return false 并写入地址栏:

<form>
<input type="text" name="start" id="start"><br/>
<input type="text" name="end" id="end"><br/>
<button onClick="checkTotal();">Check Total</button><br/>
<input type="text" id="aaa"><br/>
</form>

javascript 是这样的(为了便于阅读,所有这些都被删减了)

    function checkTotal(){

    var start=document.getElementById('start').value;
    var end=document.getElementById('end').value;
    var total=end-start;
    var writeTotal=document.getElementById('total');
    writeTotal.innerHTML=total;
    var abc=document.getElementById('aaa').value=total;
    console.log(total);

    }
4

1 回答 1

4

你所拥有的是一个具有隐含GET方法类型的表单。它旨在根据字段名称将表单值作为 URL 编码参数添加到 URL。

因此,您看到的结果与console.log.

于 2013-10-07T20:30:26.663 回答