문제

나는 현재 요소가있는 양식의 제출 이벤트를 트리거하고 싶습니다. 내가 아는 방법은 때때로 다음과 같습니다.

this.form.submit();

모든 브라우저에서 100% 확실한 방법이 작동하지 않기 때문에 jQuery를 사용하는 더 나은 솔루션이 있는지 궁금합니다.

편집하다:

내가 가진 상황은 다음과 같습니다.

<form method="get">
    <p><label>Field Label
        <select onchange="this.form.submit();">
            <option value="blah">Blah</option>
            ....
        </select></label>
    </p>
</form>

나는 변경시 양식을 제출할 수 있기를 원합니다. <select>.

내가 찾고있는 것은 양식의 ID 나 이름을 모르고 어떤 형태의 모든 필드에서 작동하는 솔루션입니다. $('form:first') 그리고 $('form') 양식이 페이지에서 세 번째가 될 수 있으므로 작동하지 않습니다. 또한 이미 사이트에서 jQuery를 사용하고 있으므로 약간의 jQuery를 사용하는 것이 큰 문제가 아닙니다.

그렇다면 jQuery가 입력/select/textarea가있는 양식을 검색하는 방법이 있습니까?

도움이 되었습니까?

해결책

나는 당신이 찾고있는 것이 다음과 같은 것 같습니다.

$(field).closest("form").submit();

예를 들어, OnChange 이벤트를 처리하려면 다음과 같습니다.

$(select your fields here).change(function() {
    $(this).closest("form").submit();
});

어떤 이유로 jQuery 1.3 이상을 사용하지 않는 경우 parents 대신에 closest.

다른 팁

this.form.submit();

이것은 아마도 당신의 최선의 방법 일 것입니다. 특히 프로젝트에서 jQuery를 아직 사용하지 않는 경우이 목적을 위해 jQuery (또는 다른 JS 라이브러리)를 추가 할 필요가 없습니다.

당신은 항상 할 수 있습니다 jQuery-ried 당신의 양식 .Submit, 그러나 그것은 똑같은 것을 호출 할 수 있습니다.

$("form").submit(); // probably able to affect multiple forms (good or bad)

// or you can address it by ID
$("#yourFormId").submit();

당신은 또한 수 붙이다 제출 이벤트에 대한 기능이지만 다른 개념입니다.

비슷하다 매튜 답, 방금 다음을 수행 할 수 있음을 알았습니다.

$(this).closest('form').submit();

잘못 : 부모 기능을 사용하는 데있어 문제는 필드가 즉시 양식 (TD, 레이블 등이 아닌) 내에 있어야한다는 것입니다.

나는 수정된다 : 부모에스 (S와 함께)도 작동합니다. 그것을 지적 한 thxs paolo.

jQuery를 사용하는 최상의 솔루션은

$(this.form).submit()

이 명령문 사용 jQuery 플러그인 (예 : jQuery 양식 플러그인) 올바르게 작동하고 jQuery DOM을 가로 지르는 오버 헤드가 최소화됩니다.

"현재 요소"의 의미를 설명하지 않는다는 점에서 다소 혼란스러워합니다.

모든 종류의 입력 요소와 유형의 "제출"버튼이있는 페이지에 여러 양의 양식이있는 경우 필드를 채우면 "ENTER"를 누르면 해당 양식의 제출이 트리거됩니다. 당신은 거기에 자바 스크립트가 필요하지 않습니다.

그러나 양식에 여러 개의 "제출"버튼이 있고 다른 입력 (예 : "편집 행"및/또는 "행 삭제"버튼이없는 경우 게시 한 줄이이를 수행 할 수 있습니다.

다른 방법 (JavaScript가 필요하지 않음)은 모든 버튼 ( "제출 유형")에 다른 값을 제공하는 것입니다. 이와 같이:

<form action="...">
    <input type="hidden" name="rowId" value="...">
    <button type="submit" name="myaction" value="edit">Edit</button>
    <button type="submit" name="myaction" value="delete">Delete</button>
</form>

버튼을 클릭하면 버튼이 포함 된 양식 만 제출되며 누른 버튼의 값 만 전송됩니다 (다른 입력 값을 따라).

그런 다음 서버에서 변수 "myaction"의 값을 읽고 무엇을 해야하는지 결정합니다.

jQuery에서 당신은 전화 할 수 있습니다

$("form:first").trigger("submit")

그것이 훨씬 더 나은지 모르겠습니다. 나는 양식을 생각한다 .submit (); 꽤 보편적입니다.

<form method="get">
   <p><label>Field Label
      <select onchange="this.form.submit();">
         <option value="blah">Blah</option>
            ....
     </select>
     </label>
   </p>
    **<!-- <input name="submit" type="submit" /> // name="submit_new_name" -->**
  </form>

<!-- 

   this.form.submit == this.form.elements['submit'];

-->
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top