2012-07-04 4 views
0

jQuery를 사용하면 양식의 .submit()을 가로 채고 입력 한 데이터를 보여주는 사용자 지정 팝업 창을 만들고 싶습니다. 확인을 요청합니다. 그들이 확인 버튼을 클릭하면 true가 .submit()으로 리턴되고 계속됩니다. 그러나 false가 눌려지면 이동해서는 안되며 항목을 변경할 기회가 있어야합니다.팝업 창에서 클릭 한 버튼을 기준으로 true 또는 false를 반환합니다.

이미 표시되는 양식의 내용과 단추가 잘 보이는 팝업 창이 있습니다. 어떻게해야할지 모르겠다면 버튼의 클릭 기능을 묶어서 하나를 클릭하면 false를 반환하고 .submit()을 클릭하면 true가 .submit()으로 반환됩니다.

If 내 코드 중 일부만 게시 해주세요.

맞춤 대화창을 사용하고 싶지 않으므로 확인 대화 상자를 사용하고 싶지 않습니다. 변수 submit

var submit = confirm('Are you sure?'); 

if (submit) { 
    $(this).submit(); 
} 
else { 
    return false; 
} 

사용자가 확인 ok 버튼을 클릭하면이 사용자에게 메시지 "Are you sure?"을 제시 대화에 의해 작동, 대화가 반환 true :

답변

0

대화에 .submit()을 콜백 함수로 전달해야합니다. 이것은 한 가지 해결책이 아니라 익숙해 져야 할 패턴입니다. 단지 모든 경우를 처리하지 않습니다이 양식의 제출하기 'click 이벤트 (F 잡기

function openPopup(form) { 
    // 
    // Put whatever code you use to open you 
    // popup here 
    // 

    // Bind click handler to submit form if they click confim 
    $("#id_of_confim_button").on("click", function() { 
     // Get the form that was 
     form.submit(); 
    }); 

    // Bind click handler for cancel button 
    $("#id_of_cancel_button").on("click", function() { 
     // 
     // Code to close your popup 
     // 
    }); 
}; 

$("#id_of_form_submit_button").on("click", function(event) { 
    // Stops the form from submitting 
    event.preventDefault(); 

    // Get the form you want to submit 
    var form = $("#form_being_submit"); 

    // Call your 'open custom popup' function and pass 
    // the form that should be submitted as an argument 
    openPopup(form); 
}); 
+0

이것은 내가했던 것을한다 굉장한 – Wryte

2

당신은 confirm() 대화를 사용해야 그렇지 않으면 false을 반환합니다. false가 (사용자가 클릭을 cancel) 반환되면

는 다음 iffalse 평가하고 else 실행된다.

+4

하지만 난은 확인 대화 상자를 사용하지 않으 , 그들은 꽤 못생긴다 – Wryte

+0

잘 나는 나의 자신의 주문의 팝업 창문을 사용한다라고 말했다 – Wryte

0

: 다른 일반적인 문제와 함께이 주제 중 일부는 당신이

예 건너 수에 대한이 http://www.youtube.com/watch?v=hQVTIJBZook 아마 도움이 될 것입니다 누군가가 비 텍스트 입력에 들어가면 양식도 제출됩니다.) 원래는 &를 방지 후

내가 비동기 방식으로 제출 처리하는 경우

, 난은 isDirty 상태로 가져 수동 submit을 발사하는 데 사용 :

(function() { 
    var isDirty = true; 
    $("form#id").on("submit", function (evt) { 
    if (isDirty) { 
     evt.preventDefault(); 
     popup("... params ...", function() { 
     // this will called, when the popup ensures the form can be submitted 
     // ... & it will be called by the popup 
     isDirty = false; 
     $("form#id").submit(); 
     }); 
    } 
    }); 
})(); 
관련 문제