> php教程 > PHP开发 > 새로 고침 없이 Jquery Ajax 사용자 정의 제출 양식

새로 고침 없이 Jquery Ajax 사용자 정의 제출 양식

高洛峰
풀어 주다: 2016-12-16 15:28:58
원래의
1607명이 탐색했습니다.

Jquery의 $.ajax 메소드는 ajax 호출을 구현하고 URL, 게시물, 매개변수 등을 설정할 수 있습니다.

기존 Form을 제출하기 위해 많은 코드를 작성해야 한다면 Form 제출을 Ajax로 직접 전송하면 어떨까요.

이전 처리 방법

예를 들어 Form 코드는 다음과 같습니다

<form id="Form1" action="action.aspx" method="post" >
名称:<input name="name" type="text" /><br />
密码:<input name="password" type="password" /><br />
手机:<input name="mobile" type="text" /><br />
说明:<input name="memo" type="text" /><br />
<input type="submit" value="提 交" />
</form>
로그인 후 복사

제출 시 action.aspx 페이지로 이동합니다. 그리고 Request.Params["name"]을 통해 값을 얻을 수 있습니다.

생각

페이지를 새로고침하지 않고 ajax를 사용하려면 $.ajax에 URL과 기타 정보를 지정해야 하는데 유지 관리가 어렵습니다.

인터넷으로 확인해 보니 외국인들은 오래전부터 해결책이 있었더군요. Form 정보에 따라 직접 제출하려면 ajax를 사용하세요. 페이지를 새로 고치지 않습니다.

참고: http://jquery.malsup.com/form/

매우 유용하지만, 그래도 제가 쓸 수 있도록 하나 작성해 보고 싶습니다.

핵심 JS 코드

//将form转为AJAX提交
function ajaxSubmit(frm, fn) {
    var dataPara = getFormJson(frm);
    $.ajax({
        url: frm.action,
        type: frm.method,
        data: dataPara,
        success: fn
    });
}

//将form中的值转换为键值对。
function getFormJson(frm) {
    var o = {};
    var a = $(frm).serializeArray();
    $.each(a, function () {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || &#39;&#39;);
        } else {
            o[this.name] = this.value || &#39;&#39;;
        }
    });

    return o;
}
로그인 후 복사

ajaxSubmit 메소드의 첫 번째 매개변수는 제출할 양식이고, 두 번째 매개변수는 ajax 호출 성공 후 처리 기능입니다.

양식 작업을 ajax url에 전달하고 양식 메서드를 ajax 유형에 전달한 다음 형식이 지정된 양식 콘텐츠를 데이터에 전달합니다.

getFormJson 메소드는 양식 요소를 json 형식의 키-값 쌍으로 변환합니다. {name:'aaa',password:'tttt'} 형식에서는 동일한 이름을 가진 항목을 배열에 배치하도록 주의하세요.

//调用$(document).ready(function(){
    $(&#39;#Form1&#39;).bind(&#39;submit&#39;, function(){
        ajaxSubmit(this, function(data){
            alert(data);
        });        return false;
    });
});
로그인 후 복사

호출 ajaxSubmit 메소드를 호출하기 전, 호출 반환 후처리 코드를 Alert(data)에 직접 추가할 수 있습니다.

ajaxSubmit 메소드를 호출한 후 양식이 제출되지 않도록 return false; 문을 추가해야 합니다.


자세히 Jquery Ajax 사용자 정의 제출 양식 양식 번호 관련글 새로고침 PHP 중국어 홈페이지를 주목해주세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿