2013-03-08 3 views
2

jQuery를 사용하여 양식을 자동 제출하는 경우가 있습니다. 그것은 작동자바 스크립트 양식 제출이 입력 유형 값을 제출하지 않습니다. = submit

$("form [data-autosubmit]").closest("form").submit(); 

, 그러나 그것은 이름과 input type=submit 버튼의 값을 전송하지 않습니다 : 여기에 내 코드입니다. 형태는 자바 스크립트에 의해 제출

input: text they entered 
submit: Submit 

그러나 경우에만이 POSTDATA가 전송됩니다 사용자가 제출 한 경우

<form method="POST"> 
<input type="text" name="input" value="text they entered"> 
<input type="submit" name="submit" value="Submit"> 
</form> 

다음 POSTDATA를 보낼 것이다 :

는 다음 코드를 정교하게하려면 :

input: text they entered 

내 PHP 스크립트는 POS에서 "제출"값의 존재에 의존합니다. Tdata.

$("form [data-autosubmit]").closest("form").find("input[type=submit]").click(); 

을하지만,이 목적을 위해 의도 된 형태에 submit 이벤트가있을 때, 논리를 무시하는 것 같다

나는 내가 할 수있는 생각했다.

+0

그 이상한 소리 ... 당신 말이 맞아 야합니다. 브라우저 문제인지 궁금합니다. 빠른 수정으로 간단히 를 폼에 추가 한 다음 그 대신에 찾으십시오. – rnirnber

+0

@rnirnber 그랬지만, 너무 어수선해요. – stackunderflow

답변

3

HTML form은 여러 개의 submit 입력을 지원하도록 제작되었으므로 동일한 양식에 '삽입'및 '수정'버튼이있을 수 있습니다. 따라서 양식은 _POST 제출에 선택한 필드를 실제로 등록하기 위해 클릭에 의존합니다. 자바 스크립트 submit() 함수가 것 POST 배열에 두 버튼을 등록하면

if(!empty($_REQUEST['Update'])){ 
    //Run update logic here.. 
} 
elseif(!empty($_REQUEST['Insert'])){ 
    //Run insert logic here... 
} 

:

<form [...]> 
    <input type="submit" name="Insert" value="Insert"> 
    <input type="submit" name="Update" value="Update"> 
</form> 

은 서버 측에 다음과 같이 처리 할 수있는 : 기본적으로, HTML은 다음과 같습니다 양식을 할 수 있습니다 이 유효한 마크 업/로직을 사용하여 응용 프로그램을 중단하므로 기본값은 submit 입력을 생략합니다.

따라서 자바 스크립트를 사용하면 (양식을 제출하는 대신 submit()이 아니라 제출 버튼을 클릭하면 해결됩니다) 올바른 방법입니다.

+0

OK 그러면'click()'메소드를 사용해야 할 것입니다. 당신의 설명에 감사드립니다. – stackunderflow

관련 문제