2008-10-29 3 views
7

양식 플러그인에서 jQuery의 ajaxSubmit 함수를 사용하여 제출할 양식이 있습니다. 제출하기 직전에 폼 데이터에 폼 이름/값 쌍을 추가하려고합니다. 내 계획은 beforeSubmit 이벤트 핸들러에서 양식 데이터를 수정하는 것입니다. 내가 formData에 대한 간단한 쌍을 추가하려면 어떻게beforeSubmit with jQuery ajax를 사용하여 양식 값 수정하기?

function handleActionFormBeforeSubmit(formData, form, options) { 
    // Add a name/value pair here somehow to formData 
} 

:

처럼 보이는 기능을 감안할 때? 그것은의 형태로 배열입니다 :

[ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ] 

감사합니다, 브라이언 실험의 시간 후

답변

16

, 나는 해결책을 알아 냈어. 양식 데이터에 값을 추가하려면 다음 코드가 작동합니다. 나는이 다른 사람을 도움이되기를 바랍니다

formData[0].value = 'new value'; 

: 당신은 당신이 같은 변경하고자하는 값의 인덱스를 알고있는 경우

function handleActionFormBeforeSubmit(formData, form, options) { 

    // Add a name/value pair indicating this is an asynchronous call. 
    // This works with the ASP.NET MVC framework's Request.IsMvcAjaxRequest() method. 
    formData[formData.length] = { "name": "__MVCASYNCPOST", "value": "true" }; 
} 

또한 데이터를 수정할 수 있습니다.

+0

감사 ... 도움이되었습니다. –

7

이 괜찮 :이 문제가 발생하면 나를 위해 작동하지 않았다 beforeSubmit 콜백의 데이터를 변경하는 몇 가지 이유를 들어

formData.push({ "name": "__MVCASYNCPOST", "value": "true" }); 
0

.

그러나 양식 옵션에서 "데이터"에 개체를 할당하면이 개체가 일련 화 된 데이터에 추가됩니다. 이것은 jquery 양식 웹 사이트에 명시 적으로 문서화되어 있지는 않지만 기본 $ .ajax 메소드의 일부입니다.

1

formData [0]. 값 = '새 값'; AjaxSubmit()에서 제대로 작동합니다. 나는 파일 내용을 동적으로 업로드하는 동안 같은 것을 구현했다. 이전에는 양식이 빈 데이터를 서버로 보내므로이 코드는 양식을 제출하기 전에 변경하는 것이 좋습니다.

관련 문제