양식이 제출되었지만 다음과 같은 특정 버튼으로 제출되지 않은 경우
- 눌러 Enter
HTMLFormElement.submit()
JS에서 사용
브라우저는 여러 개의 제출 단추 중 하나를 눌렀을 때 사용할 단추를 어떻게 결정해야합니까?
이것은 두 가지 수준에서 중요합니다.
onclick
제출 단추에 첨부 된 이벤트 핸들러 호출- 웹 서버로 다시 전송 된 데이터
지금까지의 실험 결과는 다음과 같습니다.
- Enter, Firefox, Opera 및 Safari를 누를 때 양식의 첫 번째 제출 단추를 사용하십시오.
- 를 누르면 EnterIE는 첫 번째 제출 버튼을 사용하거나 알아낼 수없는 조건에 따라 전혀 사용하지 않습니다.
- 이 모든 브라우저는 JS 제출에 전혀 사용하지 않습니다.
표준은 무엇을 말합니까?
도움이된다면 여기에 내 테스트 코드가 있습니다 (PHP는 내 질문 자체가 아닌 테스트 방법에만 관련이 있습니다)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<h1>Get</h1>
<dl>
<?php foreach ($_GET as $k => $v) echo "<dt>$k</dt><dd>$v</dd>"; ?>
</dl>
<h1>Post</h1>
<dl>
<?php foreach ($_POST as $k => $v) echo "<dt>$k</dt><dd>$v</dd>"; ?>
</dl>
<form name="theForm" method="<?php echo isset($_GET['method']) ? $_GET['method'] : 'get'; ?>" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<input type="text" name="method" />
<input type="submit" name="action" value="Button 1" onclick="alert('Button 1'); return true" />
<input type="text" name="stuff" />
<input type="submit" name="action" value="Button 2" onclick="alert('Button 2'); return true" />
<input type="button" value="submit" onclick="document.theForm.submit();" />
</form>
</body></html>