나는이 here에 대한 또 다른 질문을 알고 있지만 이것이 저에게 맞지 않습니다.jquery each()는 첫 번째 값만 반환합니다.
저는 약 40 개의 필드가있는 매우 큰 폼과 각 필드를 개별적으로 통과하는 고통이 있습니다. 그래서 50 개의 필드를 범주로 나누고 각 입력 범주에 ID를 할당했습니다. 예를 들어, 다음과 같습니다. 10 카테고리의 10 개 필드는 표준 배송, 특송 배송, 러시 배송, 슈퍼 러시 배송의 4 가지 범주로 나뉩니다. I가 확인하는 데 사용
<form method="post" id="creation_form" action="actions/add_prices.php">
....
</form>
와 jQuery를 : 그래서 같은 ID를 가진 하나 개의 범주에서 가격을 모두 이름, 예를 들어 표준 배송 내 양식은 다음과 같이 정의된다
<id input type="text" name="s_qty_25" id="s_cf" />
<id input type="text" name="s_qty_50" id="s_cf" />
<id input type="text" name="s_qty_100" id="s_cf" />
.... and so on
라고 다음과 같이하십시오 :
$(function() {
$('#creation_form').submit(function(e){
$("#cs_f").each(function(index, obj){
var cs_f_val = $(obj).val();
if(cs_f_val == ''){
$(obj).attr('style', 'background:red;');
valid = false;
}
});
//...repeat the snipet for each 3 remaining price groups
return valid;
});
});
기본적으로 필드를 빨간색으로 설정하고 제출을 취소하십시오. 그러나 첫 번째 필드 만 빨간색 배경을 얻을 것입니다! 도움말 사람들에 대한
감사합니다 :)
당신은 그렇게 할 수 없습니다. 동일한 'id'를 가진 여러 요소는 허용되지 않습니다. 대신 클래스를 사용하십시오. jQuery는'id' 셀렉터가 하나의 엘리먼트에만 매치 될 것이고 더 많은 것을 찾지 않는다고 가정하기 때문에'each'의 결과 하나만 얻게됩니다. – verdesmarald
고유 ID가 필요합니다. –
나는 우와! 너희들 규칙! – RicardoE