HTML 양식 제출 POSTS 입력 버튼 / 제출 값; JavaScript 양식 제출은

사용자 3621633

그래서 이것은 한동안 나를 괴롭 혔습니다. 간헐적으로 양식 내용을 두 번 제출하는 페이지를 발견했습니다. 단순화를 위해 입력은 텍스트 필드와 버튼입니다. 추가 검사를 통해 하나의 양식 제출에는 텍스트 및 버튼 입력이 포함되고 다른 제출은 텍스트 입력 만 전송하는 것을 확인했습니다.

문제를 해결하기 위해 테스트 페이지를 설정했습니다. jsfiddle에 올려 놓았지만 Fiddler와 같은 HTTP 프록시 도구를 사용하여 전달 된 값을 볼 수 없기 때문에 많은 도움이 될 것이라고 생각하지 않습니다.

https://jsfiddle.net/9xL5w9t2/

<form method="post" action="www.google.com" onsubmit="alert('form submitted');" id="form1" name="form1name">
<input type="submit" value="submit form" id="submitbtn1" name="submitbtn1name" />
<input type="text" id="text1" value="123" name="text1name" />
</form>

<form method="post" action="www.google.com" onsubmit="alert('form submitted');" id="form2" name="form2name">
<input type="button" value="submit form" onclick="alert('button clicked to submit form'); document.form2name.submit();" id="submitbtn2" name="submitbtn2name" />
<input type="text" id="text2" value="123" name="text2name" />
</form>

<form method="post" action="www.google.com" id="form3" name="form3name">
<input type="button" value="submit form" onclick="alert('button clicked to submit form'); document.form3name.submit();" id="submitbtn3" name="submitbtn3name" />
<input type="text" id="text3" value="123" name="text3name" />
</form>

<form method="post" action="www.google.com" onsubmit="alert('form submitted'); this.submit();" id="form4" name="form4name">
<input type="submit" value="submit form" id="submitbtn4" name="submitbtn4name" />
<input type="text" id="text4" value="123" name="text4name" />
</form>

양식 1 : 텍스트 및 버튼 제출

양식 2 : 텍스트 제출

양식 3 : 텍스트 제출

양식 4 : 두 번 제출합니다. 1) 텍스트 제출 2) 텍스트 및 버튼 제출

외관상 HTML 양식 제출을 사용하여 제출하면 텍스트 및 버튼 입력을 통해 전송됩니다. 그러나 JavaScript를 사용하여 양식을 제출하면 텍스트 입력 만 전송됩니다. 버튼이 없습니다.

이 동작에 대한 설명은 무엇입니까? JavaScript 양식 제출은 텍스트 입력을 통해서만 전송되지만 HTML 양식 제출은 텍스트와 버튼 입력 모두를 통해 전송되는 이유는 무엇입니까?

이것은 의도 된 것입니까? 그렇다면 그 이유는 무엇입니까? HTML 파서가 버튼 값을 보내도록하는 것이 일관성이없는 것처럼 보이지만 JS 엔진은 그렇지 않습니다.

도움을 주셔서 감사합니다.

볼프강

양식 1 : 입력 유형을 사용하여 텍스트 및 버튼 .. 기본 동작을 제출합니다. submit 제출 버튼을 클릭했기 때문에 두 입력 컨트롤이 모두 제출됩니다. 다른 제출 버튼을 추가하십시오. 제출을 전달하는 버튼 만 게시 데이터에 포함되어 있음을 알 수 있습니다.

그래서 .. 그 이유는 무엇입니까? 이렇게하면 같은 이름을 사용하여 양식에 "취소"및 "저장"과 같은 두 개의 버튼을 추가 할 수 있습니다.

양식 2 : 텍스트 제출 양식 3 : 텍스트 제출 .. 두 솔루션 모두 저에게 똑같이 보이지만 여기에서 입력 유형 버튼은 "입력 필드 제출"로 처리되지 않습니다. js를 사용하여 제출합니다. 버튼에 대한 작업이 없으므로 포함되지 않은 것입니다. (위에서 설명한 것처럼).

양식 4 : 두 번 제출합니다. 1) 텍스트 제출 2) 텍스트 및 버튼 제출 Form 1.에서와 같이 입력 유형 제출을 사용하고 있으므로이 양식은 정확히 동일한 방식으로 제출됩니다. 그러나 : js를 사용하여 제출을 다시 호출하는 양식에 onsubmit 핸들러도 있습니다. 이것이 두 번째 제출의 이유입니다. 제출이 페이지 다시로드를 트리거하고 이벤트를 실행하는 스크립트가 제출 후에 "존재"하지 않기 때문에 핸들러가 먼저 호출됩니다.

다른 동작은 Fomr 2 & 3에 대해 설명한 것과 같습니다.

추가 설명이 필요하면 알려주세요.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

양식 제출 : 버튼 또는 입력?

분류에서Dev

HTML 양식 제출 출력 수정

분류에서Dev

주요 양식 입력 필드 및 제출 버튼 문제

분류에서Dev

양식 CSS 문제의 입력 유형 제출 버튼

분류에서Dev

제출 버튼 뒤에 추가되는 양식 입력

분류에서Dev

값이있는 제출 버튼 제거, 변경 양식 생성

분류에서Dev

Javascript / HTML 계산 양식에 "제출"버튼을 어떻게 구현합니까?

분류에서Dev

html 양식 입력 텍스트와 같은 줄에 제출

분류에서Dev

HTML 양식 제출 감지

분류에서Dev

HTML AngularJs CSS 양식 제출

분류에서Dev

html django 양식 제출

분류에서Dev

제출 양식에서 입력 값의 단어 일부 제거

분류에서Dev

제출 양식에서 입력 값의 단어 일부 제거

분류에서Dev

HTML 양식 제출-자바 스크립트 배열에 입력 값 추가

분류에서Dev

제출 버튼이 양식 데이터를 제출하지 않는 이유는 무엇입니까? -HTML / 노드

분류에서Dev

게시물을 통한 양식 제출의 버튼 값

분류에서Dev

양식이 게시되면 제출 버튼 값 보내기

분류에서Dev

ENTER 키 버튼으로 양식 제출

분류에서Dev

제출 양식으로 버튼

분류에서Dev

제출 버튼이없는 양식 POST

분류에서Dev

제출 양식의 차단 버튼

분류에서Dev

제출 버튼이있는 HTML 양식, 새로 고침 없음

분류에서Dev

양식 제출을위한 HTML 일반 버튼

분류에서Dev

HTML 양식에 2 개의 제출 버튼

분류에서Dev

html 또는 javascript로 제출 한 후 다른 제출 양식을 여는 방법은 무엇입니까?

분류에서Dev

Javascript 양식 제출 버튼이 작동하지 않음 innerHTML

분류에서Dev

Codeigniter HTML 양식이 양식 제출시 Null입니다.

분류에서Dev

Flutter에서 제출 버튼과 숨겨진 입력 필드가있는 HTML 양식을 표시하는 방법

분류에서Dev

양식 제출 후 입력 값 유지 (캐치 사용)

Related 관련 기사

  1. 1

    양식 제출 : 버튼 또는 입력?

  2. 2

    HTML 양식 제출 출력 수정

  3. 3

    주요 양식 입력 필드 및 제출 버튼 문제

  4. 4

    양식 CSS 문제의 입력 유형 제출 버튼

  5. 5

    제출 버튼 뒤에 추가되는 양식 입력

  6. 6

    값이있는 제출 버튼 제거, 변경 양식 생성

  7. 7

    Javascript / HTML 계산 양식에 "제출"버튼을 어떻게 구현합니까?

  8. 8

    html 양식 입력 텍스트와 같은 줄에 제출

  9. 9

    HTML 양식 제출 감지

  10. 10

    HTML AngularJs CSS 양식 제출

  11. 11

    html django 양식 제출

  12. 12

    제출 양식에서 입력 값의 단어 일부 제거

  13. 13

    제출 양식에서 입력 값의 단어 일부 제거

  14. 14

    HTML 양식 제출-자바 스크립트 배열에 입력 값 추가

  15. 15

    제출 버튼이 양식 데이터를 제출하지 않는 이유는 무엇입니까? -HTML / 노드

  16. 16

    게시물을 통한 양식 제출의 버튼 값

  17. 17

    양식이 게시되면 제출 버튼 값 보내기

  18. 18

    ENTER 키 버튼으로 양식 제출

  19. 19

    제출 양식으로 버튼

  20. 20

    제출 버튼이없는 양식 POST

  21. 21

    제출 양식의 차단 버튼

  22. 22

    제출 버튼이있는 HTML 양식, 새로 고침 없음

  23. 23

    양식 제출을위한 HTML 일반 버튼

  24. 24

    HTML 양식에 2 개의 제출 버튼

  25. 25

    html 또는 javascript로 제출 한 후 다른 제출 양식을 여는 방법은 무엇입니까?

  26. 26

    Javascript 양식 제출 버튼이 작동하지 않음 innerHTML

  27. 27

    Codeigniter HTML 양식이 양식 제출시 Null입니다.

  28. 28

    Flutter에서 제출 버튼과 숨겨진 입력 필드가있는 HTML 양식을 표시하는 방법

  29. 29

    양식 제출 후 입력 값 유지 (캐치 사용)

뜨겁다태그

보관