2012-05-24 3 views
2

바꾸기 위해 .load A A 페이지 A.htmlJQuery와이게 형태

<form name=form> 
<input type=text id = txtA> 
</form> 

제가 여러 번에로드 B.html jQuery를 사용하여로드합니다.

<form name=form> 
<input type=text id = txtA> 
</form> 

<form name=form> 
<input type=text id = txtA> 
</form> 

<form name=form> 
<input type=text id = txtA> 
</form> 

<form name=form> 
<input type=text id = txtA> 
</form> 

어떻게 내가 데이터를 검색하기 위해 PHP를 사용하려는 제출할 때 그래서이

<form name=form1> 
<input type=text id = txtA> 
</form> 

<form name=form2> 
<input type=text id = txtA> 
</form> 

<form name=form3> 
<input type=text id = txtA> 
</form> 

를 얻을 수를 Form1, Form2를, form3 ... formN 에 양식 이름을 바꿀 수 있습니다.

for each form 
    formi.txtA 

이렇게하면 각 양식 데이터를 고유하게 얻을 수 있습니다.

+0

나는 당신에게 이것을 요구할 필요가있다; 당신은'jQuery.load()'를 몇 번 수행 하는가? –

+0

예. 1 개의 양식이로드 될 때마다 사용자는 1 번 5 번 또는 10 번을 누를 수 있습니다. 5 버튼 누름 = 5 양식. 10 버튼 누름 = 10 폼이로드 중입니다. – user1397840

+0

여러 가지 양식을 사용하는 것이 최선의 방법인지 잘 모르겠습니다 ... 어쩌면 다른 이름을 가진 여러 입력 ??? – ahren

답변

5

form라고 모든 형태의 이름을 변경하고 증가 접미사에 것입니다 : 당신이 양식 하나 하나를로드 할 때

$('form[name="form"]').each(function(i) { 
    this.name = 'form' + (i + 1); 
}); 

, 당신은 다른 접근 방식이 필요합니다 때마다 들어

var renamer = (function() { 
    var i = 1; // private counter 

    // return public interface 
    return function(base) { 
     $(base).find('form[name="form"]').each(function() { 
      this.name = 'form' + i; 
      ++i; 
     }); 
    } 
}()); 

당신 새 양식을 추가하려면 전화 번호 :

renamer('#divid'); 

여기서 '#divid'는 양식이있는 부모 노드에 대한 jQuery를 선택합니다.

업데이트

당신이 동적으로로드 다중 입력 필드가 보인다. 완전히 새로운 양식을로드하는 대신 <input /> 조각을로드하면됩니다. 당신이 PHP에 제출할 수 있도록, 하나 개의 형태로

<input name="dob" type="text" value="" /> 

이 다음에 삽입됩니다 :

$(`#form`).load('http://www.example.com/inputfield?type=dob'); 

서버는 다음 조각을 반환합니다.

+0

'.each()'는 자신의 색인을 제공합니다. '.each (function (i) {'- 증분 카운터 = 필요 없음) – ahren

+0

@ahren facepalm! 물론 :) 감사합니다! –

+0

또한 자동 증분이므로 i + 1을 넣지 않아도됩니다 (물론 0이 아닌 1에서 시작하고 싶을 때). – ahren

2

일단 모든로드가 완료되면 루프를 실행할 수 있습니다.

for(var i=0; i < $("form").size(); i++){ 
    $("form").eq(i).attr("name", "formName"+i); 
}