2011-03-08 4 views
2

와 jQuery를 사용하여 나는이 한 무리를 생성하는 루프를 가지고있다.루프에서 여러 개의 동일한 ID를 갖는하고

링크가이 양식을 게시 할 것입니다 :

<form action="php/unApprovePost.php" method="POST" id="unApprovePost"> 
    <input type="hidden" id="uaid" name="uaid"/> 
    <input type="hidden" id="uadc" name="uadc"/> 
</form> 

내가 성공적으로 #uaid를 채울,하지만 난 #uadc을 채울 때, 루프의 첫 번째 반복 기능을 가지고 있습니다. 제 말은 첫 번째 텍스트 영역 만 제가 원하는 것을 적절히 게시 할 것이라는 것입니다. 첫 번째 텍스트 이외의 텍스트 영역을 사용하려고하면 아무 것도 제출하지 않습니다. HTML의 ID의 고유성과 관련이 있다고 생각합니다. 나는 클래스 .uar을 사용하여 시도했으나 실제로 작동하지 않는다 - 동일한 행동. 어떤 도움이 필요합니까?

$('#unApprovePost').submit(function() { 
     $('#uadc').val($('#uar').val()); 
    }); 

편집 : 는 루프 반복의 동적 양이있다, 그래서 정말 클래스 = "uar1"같은 것을 가질 수 없습니다

여기 내 jQuery 코드입니다. 나는 텍스트 영역을 위해 그것을 클래스 .uar을 만들고이 jQuery 코드를 사용하여 시도 :

$('#unApprovePost').submit(function() { 
    $('#uadc').val($('.uar').val()); 
}); 

을 그러나 문제는 지속됩니다.

+0

왜 숨겨진 요소를 모두 피하고 텍스트 영역 요소에 숨겨진 입력에 할당 할 ID를 지정해야할까요? –

+0

양식이 텍스트 영역 또는 제출 링크와 너무 멀리 떨어져 있습니다. jQuery를 사용하여 제출해야한다. – AKor

답변

0

$('#uadc')은 ID가 uadc 인 요소를 반환합니다. 해당 ID를 가진 요소가 여러 개 있으면 작동하지 않습니다.

<input name="uadc"/>은 키 uadc를 사용하여 서버에 값을 제출합니다. 같은 양식에 같은 이름의 입력이 여러 개 있으면 작동하지 않습니다.

2

id이 여러 개인 HTML 요소를 사용할 수 없습니다. 그것은 틀린 명백한이고 당신의 페이지에있는 약간 괴괴 망측 한 행동으로 이끌어 낼 수있다. 첫 번째 텍스트 영역 만 작동한다는 것은 완전히 정상입니다. jQuery가 지정된 ID를 찾고 첫 번째 텍스트를 찾고 양식을 보낼 것이기 때문입니다.

항상 동일한 클래스를 사용하는 경우 동일한 문제가 발생합니다. jQuery가 첫 번째 클래스를 찾고 양식을 보냅니다.

난 당신이

1

가 ID가 페이지에서 고유하도록되어 대신에 각각의 텍스트 영역에 대해 다른 class (즉 uar1, uar2, uar3 등)을 사용하는 것이 좋습니다. jQuery/javascript는 하나의 요소가 ID로 참조 될 때만 존재할 것으로 기대합니다.

필요에 따라 요소를 반복하려면 class 또는 name을 사용하십시오.

0

각각의 ID와 제출 양식을 고유 한 양식으로 포장하면 올바르게 작동합니다. 이렇게하면 각 제출이 선택한 제출에 따라 올바른 텍스트 영역을 보낼 수 있습니다.

<form action="php/unApprovePost.php" method="POST" id="unApprovePost"> 
    <input type="hidden" id="uaid" name="uaid"/> 
    <input type="hidden" id="uadc" name="uadc"/> 
    <input type="submit" id="submit" name="submit"/> 
</form> 

그렇지 않으면 정말로 원하는 목록을 보내려면 수동으로 모든 ID의 목록을 작성할 수 있습니다.이는 다음과 같이 보일 수 있습니다.

var values = [] 
$.each($('#uaid'), function(i, item){ 
    values.append($(item).val()); 
} 

결과는 수동으로 페이지에 게시 할 수있는 값 배열이됩니다.

관련 문제