我有一个标准格式,可以从一个文本框<input type="text" ...中获取值进行操作,然后视情况将信息放入div或另一个文本框。

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

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


如预期的那样(因为不包括return false),没有将div写入到文本框,也没有将文本框写入到....看屏幕截图。

这是怎么发生的?为什么将其写入位置栏?

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



一切都适用于:

<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);

    }

最佳答案

您所拥有的是带有隐式GET方法类型的表单。旨在根据字段名称将表单值作为URL编码的参数添加到URL。

因此,您看到的结果与console.log完全无关。

07-24 02:48