2012-02-22 2 views
30

여기 그것이 실제로 양식에 조치가 필요합니까?

http://www.w3schools.com/tags/att_form_action.asp

필요한 것하지만 폼 나는 액션 속성을 지정하지 않은 경우에도 제출 받고, 양식이 내가 원하는 정확히 무엇 인 현재 페이지에 제출됩니다 것을 볼 말한다.

+33

참고 : w3school에 전혀 의존하지 마십시오. 그들은 신뢰할 수있는 출처가 아닙니다. – kapa

+5

그러나이 경우 w3schools는 HTML 4 및 HTML 5 사양에서 모두 올바릅니다. HTML 4에서는 필요에 따라 목록을 표시하지만 대부분의 브라우저는 HTML 없이도 사용할 수 있습니다. HTML 5에서는 더 이상 필요하지 않습니다. http://www.w3schools.com/html5/att_form_action.asp – swannee

+0

관련성이있는 경우 양식 제출을 iframe에서 수행 할 수 있습니다. http://stackoverflow.com/a/26380651/1695680 양식의 입력 동작을 손상시키지 않고 페이지를 다시로드하지 않습니다. – ThorSummoner

답변

42

요구 사항은 표준입니다. 페이지에서 원하는 모든 작업을 수행하고 표준을 따르지 않아도됩니다. 그렇게하면 상황이 제대로 표시되거나 제대로 작동하지 않을 수 있지만 가능성은 높아집니다. 목표는 그들을 따르는 것이고, 만약 당신이 그들을 따라 간다면 페이지는 항상 일 것입니다; 당신은 무엇이든에 관하여 고민 할 필요 없다.

예, 양식이 이어야합니다.은 HTML4에 작업 속성을 포함해야합니다. 설정되지 않은 경우 브라우저는 빈 문자열을 제공하는 것과 동일한 방법을 사용합니다. 당신은 정말로 action=""을 완벽하게 유효한 HTML4로 설정하고, 표준을 따르고, 똑같은 결과를 달성해야합니다.

HTML5에서 실제로 제출 버튼 자체에서 동작을 지정할 수 있습니다. HTML 태그가 없으면 양식의 액션을 사용하고 설정되지 않은 경우 빈 문자열로 기본 설정됩니다 (HTML5에서 액션을 빈 문자열로 명시 적으로 설정할 수 없음).

+2

다른 하나는 작업 속성을 생략하기로 한 경우 기본적으로 동일한 페이지에 제출할 것을 확신합니다. – clamchoda

+0

@Chris : 나는 그것이 가능하다고 말했다. 솔직히 나는 구형 브라우저가 무엇을했는지 모르기 때문에 나는 과거의 모든 브라우저를 보증 할 수 없다. 그것이 설정되어 있지 않다면, 그것은 브라우저에 달려 있지만, 나는 그것들이 모두 그 행동을 기본으로한다고 믿습니다. – animuson

+0

답변이 작성되었을 때 2013 년에 어떻게되었는지는 모르지만 현재 HTML5 action = ""이 유효합니다 ... 또한 action 속성이 없습니다. – instead

5

기술적으로는 HTML 4 사양을 위반하지만 아무런 조치도 지정하지 않으면 모든 브라우저가 응답을 보낸 사람에게 다시 게시됩니다. 나는 그것에 의지하는 것이 현명한 생각이 아니라는 점에 동의 할 것이다.

편집 : 그것은이 질문 HTML 5로 태그가 나에게 지적 한 바와 같이 :가 더 이상 필요 action 속성 목록을 HTML 5에서 다음 HTML 5의 사양에 따라입니다 http://www.w3schools.com/html5/att_form_action.asp을.

+0

어떤 사양을 위반 했습니까? – kapa

+3

w3schools HTML 사양이라고하는 것은 없습니다. w3schools는 w3c와 아무 관련이 없으며 HTML 사양은 w3c에 의해 릴리스되고 유지 관리됩니다. w3schools는 전혀 공식이 아니며 단지 절반의 기술 정보와 훌륭한 SEO가있는 사이트 일뿐입니다. OP5가 요구하는 것을 수행하면 HTML5 스펙 (질문에서 묻는 질문)이 분명히 위반되지 않습니다. 당신을 시정하려고하는 사람들을 항상 공격합니까? 나는 당신의 행동 전문가를 찾지 못합니다. – kapa

+1

나는 머리가 날려 버릴 위험을 감수하고 싶지 않지만 질문은 HTML4와 관련이 없다. 그것이 내가 말하고 싶은 모든 것입니다. 미래 방문자가 잘못된 정보를 찾길 원치 않습니다. 나는 당신이 유치한 행동을한다는 ​​것 외에 다른 문제는 없다. [HTML5 사양 4.10.3 양식 요소] (http://www.w3.org/TR/2011/WD-html5-20110525/forms.html#the-form-element) – kapa

12

the HTML4 spec requires it처럼 보입니다. 일부 브라우저는 "일을 더 쉽게"하기를 원합니다. 나는 그것을 의지하는 것을 추천하지 않는다. 정의되지 않은 동작이므로 브라우저에서 action을 사용하여 양식을 제출할 때 아무 것도하지 않겠다고 합리적으로 결정할 수 있습니다.

가 당신은 빈 동작을 남겨 사양을 다음 동안 당신이 원하는 동작을 얻을 수 있습니다

(이 상대적이기 때문에이 빈은 현재 페이지 의미) :

<form action="" ...> 

bazmegakapa에서 언급 한 바와 같이을의 HTML5 스펙 doesn't seem to require the action attribute :

동작과 formaction 콘텐츠 속성 잠재적으로 공간에 의해 둘러싸여 유효한 비어 URL 인 값을 가져야 지정된 경우.

을 [강조 추가]

흥미롭게도 HTML5에서 <form action="">은 유효하지 않지만 작업이없는 양식 (현재 페이지 제출)이 필요한지 여부는 명확하지 않습니다.

+1

질문에 HTML5 태그가 있으며이 대답은 HTML4에 대해 이야기합니다. – kapa

+2

@ bažmegakapa 모든 답변을 투표하는 대신 HTML5 사양에 대한 링크가 포함 된 답변을 게시하는 것이 더 유용 할 것입니다. 나는 swannee에 동의한다. "downvote every answer"는 단지 코멘트를 남기지 않고 (또는 제안을 편집하는 것) 나쁜 형식이다. 우리의 대답은 모두 정확하며 원하는만큼 구체적이지 않습니다. (우리는 더 많은 정보를 가지고 답을 향상시킬 수 있기를 바랍니다.) –

+1

답변이 잘못되어 잘못된 정보가 누적 되었기 때문에 다운 투표되었습니다. 내 downvote을 제거, upvote, 감사 추가되었습니다. – kapa

관련 문제