2012-01-17 2 views
4

jqTransform 플러그인을 사용하여 양식 요소의 스타일을 지정하기 때문에 선택 상자에 약간의 문제가 있습니다. 선택 상자가 숨겨져 있으며 목록이 들어있는 사용자 정의 DIV로 바뀝니다.jqTransform Select - Ajax 업데이트?

목록에서 항목을 선택하면 플러그인이 선택의 클릭 이벤트를 발생 시키지만 시각적 목록을 업데이트하는 데 약간의 문제가 있습니다. 플러그인이 아약스 업데이트를 지원하지 않는 것으로 보입니다.

jqTransform으로 변형 된 셀에서 아약스 업데이트를 수행 한 경험이 있습니까? 변환되지 않습니다

<div class="jqTransformSelectWrapper" style="z-index: 8; width: 63px; "> 
<div> 
<span style="width: 62px; ">Petrol</span><a href="#" class="jqTransformSelectOpen"></a>   </div> 
<ul style="width: 63px; height: 24px; overflow-x: hidden; overflow-y: hidden; display: none; visibility: visible; "> 
<li><a href="#" index="0" class="selected">Petrol</a></li></ul> 
<select id="fuel_type_id" name="fuel_type[id]" class="jqTransformHidden" style=""><option value="1">Petrol</option></select> 
</div> 

플러그인 이미 (당신이 jqTransformHidden 클래스를 제거하여 그것을 강제 할 수 있지만, 그건 그냥 눈에 보이는 선택을 복제)를 선택 변형 : 선택 형질 전환

이 같이 보입니다.

이전 상태로 선택을 반환하고 다시 변환을 수행하는 데 사용할 수있는 영리한 jquery가 있는지 궁금합니다.

감사합니다,

+0

@ 폴 안녕, 나는 점점 캔트 것들 내가 코드를 아래에 사용할 수있는 방법이. 나는 국가와 국가를위한 두 가지 콤보를 가지고있다. 국가 선택 후 combo는 선택된 contry의 주와 함께 poups됩니다. 나는 당신과 채팅 할 필요가있다. – Bajrang

답변

16

나를 위해 그것을 한 다음

function fix_select(selector) { 
    var i=$(selector).parent().find('div,ul').remove().css('zIndex'); 
    $(selector).unwrap().removeClass('jqTransformHidden').jqTransSelect(); 
    $(selector).parent().css('zIndex', i); 
} 
fix_select('select#my_updated_select_box'); 
+0

도 나를 위해 일했다. jQuery의 이전 버전을 사용하고 있기 때문에 .unwrap() 함수를 jQuery 소스에서 복사해야했다. –

+0

안녕하세요 @Teodor Todorov, 저는 내가 그것을 어떻게 사용할 수 있는지를 알지 못한다. 나는 국가와 국가를위한 두 가지 콤보를 가지고있다. 국가 선택 후 combo는 선택된 contry의 주와 함께 poups됩니다. 도와주세요. – Bajrang

0

변화에 이벤트의 발사는 쉽게 수정을 적용하여 트리거 할 수 있습니다 : 업데이트에 대한

http://www.polemus.net/2011/06/jqtransform-option-change-not-firing.html

나는 같은 문제가 있었다. 원래 select가 업데이트 된 후에 호출하는 추가 함수로이 문제를 해결했습니다.

그것은 뭔가 다음과 같다 : 방금 다음 코드 트리거, 당신의 선택 옵션을 업데이트 한 후

function fix_select(selector) { 
    selectedVal = $(selector).children(':selected').val(); 
    $(selector).children('option').removeAttr('selected'); 
    $(selector).children('option[value="'+selectedVal+'"]').attr('selected','selected'); 

    $(selector).removeClass('jqTransformHidden'); 
    $(selector).css('display','block'); 
    $(selector).prev('ul').remove(); 
    $(selector).prev('div.selectWrapper').remove(); 

    var selectElm = $(selector).closest('.jqTransformSelectWrapper').html(); 

    $(selector).closest('.jqTransformSelectWrapper').after(selectElm); 
    $(selector).closest('.jqTransformSelectWrapper').remove(); 

    $(selector).closest('form').removeClass('jqtransformdone'); 
    $(selector).closest('form').jqTransform(); 
} 

: 그것은 어쩌면 예쁜 해결책이 아니다

fix_select('select#my_updated_select_box'); 

을하지만, 그냥 작동 나를 위해 훌륭합니다.