2010-12-01 3 views
1

두 개의 다른 필드를보고 필드의 유효성을 검사하려고합니다. 문제는 원격지에서 추가 데이터를 보내는 방법을 확인하는 모든 예제에서 처리중인 다른 필드의 ID를 사용하고 있다는 것입니다. 따라서 jQuery의 remote() API 페이지의 예제는 "#username"을 사용하고 이메일 필드와 함께 전송합니다.JQuery 원격 폼 유효성 검사 추가 정보 보내기

내 페이지가 이상하고 여러 개의 양식이 있고 페이지의 양식 수가 가변적이어서 각 필드에 고유 한 ID를 사용할 수 없습니다. 어떤 필드 나 폼이 유효성이 확인되고 있는지/원격 호출을하고 있는지 찾아내는 방법이 있습니까? $ (this)가 유효성을 검사하는 텍스트 상자이거나 유효성이 검사되는 개별 양식이 될 것이라고 생각했기 때문에 다음과 같은 것을 시도했지만 그럴 것 같지 않습니다.

number: { 
        required: true, 
        number: true, 
        remote: { 
        url: "confirm.php", 
        data: { 
         toy: function() { 
          return $('select[name="toy"]:selected',this).val(); 
         } 
        } 
        } 
      } 

감사합니다, 자레드

편집 : 나는 작업을 얻을 수있는 방법을 알아내는 끝났다. 양식을 전달하는 조언은 저에게 아이디어를주었습니다.

페이지에 여러 양식이 있으므로 $ ('form')을 사용하고있었습니다. 각 (function() {$ (this) .validate ({....})});

그래서 난 그냥 VAR 양식 = $ (이)와 현재 양식에 대한 참조를 저장 validate 호출 해 전, 나는 단지 작은 변화했습니다 나는 이전에 준 예에서 :

data: { 
    toy: function() { 
     return $('select[name="toy"]',form).val(); 
    } 
} 

이제는 각 필드가 속한 양식을 알 수 있습니다!

답변

1

각 양식에 고유 한 formId을 할당 할 수 있으며 양식이 제출 될 때마다 양식의 다른 정보와 함께 formId을 제출하여 제출할 양식을 식별 할 수 있습니다.

양식 # 1 :

<form id="form_1"> 
Name: <input type='text' id='name_1'> <br> 
Address: <input type='text' id='address_1'> <br> 
<input type='button' value='Submit' onclick='validate(1);'> 
</form> 

양식 # 2 (1과 같은 형태의 ID로) :

예를 들어, 양식의 HTML 코드, 당신이 뭔가를 할 수 있습니다 (로 이 같은 형태의 아이디) 자바 스크립트에서

<form id="form_2"> 
Name: <input type='text' id='name_2'> <br> 
Address: <input type='text' id='address_2'> <br> 
<input type='button' value='Submit' onclick='validate(2);'> 
</form> 

, 이런 식으로 뭔가 :

function validate(formId) 
{ 
    var data = {}; 
    //Example data that is to be submitted for validation: 
    data.name = $("#name_" + formId).val(); 
    data.address = $("#address_" + formId).val(); 
    //.. and so on 
    data.formId = formId; 

    $.post('http://example.com/confirm.php', data, function(result) 
    { 
     //process the return of the remote validation here, 
     //found in the variable: result 
    } 
    ); 
} 
+0

죄송합니다, 이해가 안됩니다. 원격 확인 요청에서 formID를 추가 데이터로 보내겠습니까? 어떤 양식이 검증되고 있는지 어떻게 알 수 있습니까? 또는 양식을 실제로 제출할 때 양식 ID를 보내겠습니까? – EvilAmarant7x

+0

@evil 예, 정확히 말하고 있습니다. 즉 formId를 추가 데이터로 보냅니다. 내가 어떤 보충 코드를 추가했습니다. 다른 질문이 있으면 알려주세요. –

+0

조언 주셔서 감사합니다! 비록 내가 게시 한 것을 정확히 사용할 수는 없지만 (내 페이지에 모든 것이 즉시 제출되었습니다) 올바른 아이디어를 제공했습니다. – EvilAmarant7x