2017-01-18 2 views
0

그래서 두 개의 다른 플러그인을 다루므로 선택 메뉴에 속성이없는 경우 함수를 수행 할 수 있어야합니다. 나는 이것에 난처 해했고 지금까지 아무런 성공도없이 많은 다른 방법을 찾았다. jQuery를 사용하여 함수 수행 select 메뉴에 select 속성이없는 경우

나는과 같이 구조화 선택이 있습니다

<div class="quantity_select"> 
<select name="cart[d3207bfbf377b2c6a2d5f0f397ecef61][qty]" title="Qty" class="qty"> 
     <option value="500" data-qty="500" data-price="0.27" selected=""> 
      500&nbsp;envelopes&nbsp;$135.00   </option> 
     <option value="1000" data-qty="1000" data-price="0.18"> 
      1000&nbsp;envelopes&nbsp;$180.00   </option> 
     <option value="2000" data-qty="2000" data-price="0.15"> 
      2000&nbsp;envelopes&nbsp;$300.00   </option> 
     <option value="5000" data-qty="5000" data-price="0.15"> 
      5000&nbsp;envelopes&nbsp;$750.00   </option> 
</select> 
</div> 

그리고 나는 이것이하거나 선택되지 않으며 결과에 따라 기능을 수행 여부를 어느 것을 검증 할 수 있어야합니다. 그래서 내가 함께 일하고 있어요 스크립트입니다 :

$('.qty').each(function(i, obj) { 
    if (!$('option:selected',this).index() <= 0) { 
      $('.actions').find('input[name="update_cart"]').click(); 
     } 
}); 

이 같은 클래스 qty와 선택 하나 이상의 그래서 통해 루프에 필요하고 각각을 확인합니다.

내가 잘못하고있는 것이 확실하지 않습니다. 'option:selected',this입니까? 나는 이것이 효과가 있다고 상상할 것이다. 콘솔에서 오류가 발생하지 않았는지 확인했는지 실제로 확인하는 것이 아닙니다.

내 테스트 페이지에서 두 개의 선택 항목이 selected=""이고 하나는 선택하지 않으면 트리거되어야합니다. (:, '선택'옵션이) 그렇게 배열의 인덱스가 아마 작동하지 않습니다 확인 선택한 옵션의 배열을 반환

$('.qty').each(function(i, obj) { 
    if ($('option:selected',this).length > 0) { 
      $('.actions').find('input[name="update_cart"]').click(); 
     } 
}); 

$를 :

+0

if ($ (this)) .find ('option : selected'). 길이가 = 0)) {...}'' –

답변

0

당신이 시도 할 수 있습니다.

+0

옵션이 실행되지만 장바구니를 업데이트하면 페이지. 선택한 속성이 전혀 존재하지 않으면이 작업을 수행하기를 원합니다. 문제는 'selected = ""'를 검사하고 길이가 없기 때문에 속성의 길이가 없다는 것입니다. –

+0

이 쿼리는 속성의 길이를 반환하지 않으며, 선택한 옵션 배열의 길이를 반환합니다 (드롭 다운의 경우 0 또는 1, 다중 선택 목록 상자의 경우 0 ~ 다수). 선택한 속성이 다른 방법으로 존재하는지 $ ("option [selected]") 길이인지 확인할 수 있습니다. 다시 한번, 선택된 속성이 존재하는 일련의 옵션들을 리턴한다. – MikeS

+0

완벽! '$ ("option [selected]"). length. "사용에 대한 귀하의 제안은 제가 가지고있는 핵심 문제를 해결하는 표였습니다. 스크립트가 올바르게 실행되지 않는 것처럼 보이고 첫 번째 선택에 해당하는 경우에만 트리거하는 것으로 나타났습니다. 그들은 모두 같은 클래스'qty'를 가지고 있기 때문에'.each'가 작동 할 것이라고 생각할 것입니다. 이견있는 사람? –