0

<input type="text" ...あるテキストボックスから値を取得して操作し、場合によっては情報を div または別のテキストボックスに入れる標準フォームがあります。

私が間違いを犯すまで、すべてがそのままでした。<form>テキストボックスの周りに aを追加しましreturn falseたが、関数を呼び出すときに a を追加しませんでした。問題を解決するのに数秒かかりましたが、興味深いことに気付きました: console.log 情報がロケーション バーに配置されていました。

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

予想どおり (return false が含まれていなかったため)、div は書き込まれず、テキスト ボックスも書き込まれませんでしたが .... スクリーンショットを見てください。

これはどのように起こりますか?ロケーションバーに書き込まれるのはなぜですか?

下のスクリーンショット: (フォーム送信ボタンが必要なため、jsfiddle を作成できません。) テキストボックスに 22 を入力し、<input type="text" id="start">テキストボックスに 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

What you have is a form with an implict GET method type. It's intended to add the form values to the URL, as URL-encoded parameters, according to the field names.

So, the result you're seeing is completely unrelated to console.log.

于 2013-10-07T20:30:26.663 に答える