2011-12-23 4 views
3

facebook.I에서 양식을 제출하기 전에 텍스트 상자에서 텍스트를 암호화 할 수 있기를 바랍니다. beforeSerialize 또는 beforeSubmit과 함께 ajaxFORM 플러그인을 시도했지만 암호화가 이루어지지 않습니다. 암호화 기능을 따르는 코드에서 디버깅 purpose.The 경고에 대한 경고와 함께 스크립트를 실행하고 facebook.Also 내가 제출 버튼을 누르면 페이지를 새로 고쳐달라고하고 내가 원하지 않는 제출 버튼을 누르면 안된다.양식을 제출하기 전에 데이터를 변경하십시오.

var s = document.createElement('script'); 
s.setAttribute('src', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js'); 
document.body.appendChild(s); 


var f = document.createElement('script'); 
f.setAttribute('src', 'http://malsup.github.com/jquery.form.js'); 
document.body.appendChild(f); 

var c = document.createElement('script'); 
c.setAttribute('src', 'http://malsup.github.com/chili-1.7.pack.js'); 
document.body.appendChild(c); 



s.onload=function(){ 


$(document).ready(function() { 
    // bind form using ajaxForm 
    $(document.activeElement).closest("form").ajaxForm({ 
    beforeSerialize:   alert($(document.activeElement).val()) }); 
}); 


}; 

답변

2

당신은 제출 버튼에 클릭 이벤트를 호출하여 제출하기 전에 발생하는 상황을 제어 할 수 있습니다 : 버튼이 정상적으로 뒤에 것처럼 행동하려는 경우

$("#submit_button").click(function(event) { 
    event.preventDefault(); 

    alert("Encrypting..."); 
}); 

당신은 또한 event.preventDefault();을 삭제할 수 있습니다 님이 귀하의 클릭 이벤트를 처리했습니다. 당신이 이벤트를 직접 제출 트리거 할 경우, 내가 사용하는 것이 좋습니다 것 event.preventDefault();

참고 : 나는 다른 이벤트 (클릭, 변경, 등)의 실행 순서에 차이가 알고

; 예 : 동일한 체크 박스에서 변경 및 클릭 이벤트가 발생하면 Firefox에서 (클릭 한 다음 변경) 클릭하거나 Chrome에서 (변경 한 후 클릭)합니다. 단추의 클릭 및 제출 이벤트가 동일하면 preventDefault을 사용하는 것이 좋습니다. 그러면 양식을 제출할 준비가되었을 때 직접 제출할 수 있습니다. 이렇게하면 모든 브라우저에서 작동합니다.

+0

제출 버튼의 ID 나 이름을 모르므로 $ (# submit_button)을 사용할 수 없습니다. 또한 Facebook의 첫 번째 텍스트 상자에는 제출 버튼이 있습니다. 전체 다른 입력란은 '입력'을 눌러 제출합니다. 도움을 주셔서 감사합니다. – vkefallinos

+0

그래서 위의 문제를 무시할 수있는 방법이 있습니까? – vkefallinos

+0

입력에 의해 제출 된 경우 여전히 버튼이 아니라 '제출'처리기가 첨부되어 있습니다. 따라서 .submit()은 여전히 ​​이벤트를 트리거합니다. ($ # "id_of_form 또는 .class_of_forms"와 같이 트리거해야 함을 명심하십시오.) submit(); 또한 DOM에서 파고 들음으로써 버튼을 찾을 수 있습니다 : $ ("body> div> form> $ ("# id_of_element_inside"). parent(). parent() 예를 들어, 다음과 같이 구문 분석을 할 수 있습니다 : input [type = submit] -) – Flater

관련 문제