-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,
. 하지만이 코드를 다시 작성하면 document.getElementById('demo').onsubmit = greet;
이 작동합니다. 하지만 왜? 는 그리고 이것은뿐만 아니라 작동합니다 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()이 제출 된 값을 제공하지 않는 이유는 무엇입니까? 양식 -> onsubmit -> greet 함수 호출, 맞습니까? 나는 파이썬 배경이있다. 하지만 어떻게 자바 스크립트에서 함수 호출 작동 이해가 안돼? – Amy
onsubmit에 값을 할당 할 때 즉시 호출되기 때문에. 따라서이 값은 비어 있습니다. 대신 함수를 전달하면 양식을 제출할 때이 함수가 호출되므로 입력 한 값에 값이 있습니다. –
나는이 순간에 분실되었다. JavaScript에서 함수 호출에 대해 혼란스러워합니다. 나는 그것에 대해 생각하기 위해 휴식을 취할 필요가있다. 감사. – Amy