-1
<!DOCTYPE html>
<html>
<head>
<title>Greet</title>
</head>
<body>
<form id="demo">
<input id="name" placeholder="Name" type="text"/>
<input type="submit"/>
</form>
<script>
function greet()
{
alert('hello, ' + document.getElementById('name').value);
}
document.getElementById('demo').onsubmit = greet();
</script>
</body>
form.onsubmit呼び出し関数はどのように機能しますか?
アラートは、私が提出した名前が表示されません。唯一hello,
です。しかし、私がこのようなコードを書き直すなら、それはうまくいきます。しかし、なぜ? そして、これは同様に動作します:greet
は関数自体を参照するので、それが動作します
<!DOCTYPE html>
<html>
<head>
<title>dom0</title>
</head>
<body>
<form id="demo" onsubmit="greet()">
<input id="name" placeholder="Name" type="text"/>
<input type="submit"/>
</form>
<script>
function greet()
{
alert('hello, ' + document.getElementById('name').value);
}
</script>
</body>
申し訳ありませんが、私はあなたが言っていることを知っています。しかし、私はまだそれがどのように動作するのか理解していない?なぜgreet()は送信された値を与えないのですか? form - > onsubmit - > greet関数を呼び出す、正しい?私はPythonの背景を持っています。しかし、私はjavascriptの関数呼び出しがどのように動作するのか理解していないのですか? – Amy
onsubmitに値を代入するとすぐに呼び出されるためです。したがって、値は空です。代わりに関数を渡すと、フォームを送信するときに呼び出されます(したがって、入力した場合)は値を持ちます。 –
私はこの瞬間に迷っています。 JavaScriptの関数呼び出しについては混乱します。私はそれについて考えるために休息を取る必要があります。ありがとう。 – Amy