2012-11-02 3 views
0

선택 상자에서 선택한 항목에 따라 유효성 검사를 활성화/비활성화하려면 spry를 가져 오려고합니다.선택 상자 옵션에서 spry 유효성 검사 활성화/비활성화

주소를 선택하는 경우 주소를 선택하면 & 국가 필드가 표시되고 spry_country, spry_region의 유효성을 검사해야합니다.

가격이 추가 된 경우 & 가격 세금 필드가 표시되고 spry_price & spry_price_tax의 유효성 검사 등이 필요합니다.

나는 잘 작동하는 것처럼 보이는 다음 코드를 가지고 있지만 주소를 선택한 다음 마음을 바꾸고 주소를 입력하지 않기로 결정하면 코드가 필드를 숨기지 만 숨겨진 필드의 유효성을 계속 검사하는 것처럼 보입니다. 양식을 제출할 수 없습니다. 이 만드는 희망 의미 :) 대신이 일을

/* If address selected */ 
$("#location_option").change(function() { 
    if ($("#location_option").val() == "address"){ 
     $(".show_location").show(); 
     /* activate spry */ 
     var spryselect4 = new Spry.Widget.ValidationSelect("spry_country", {isRequired:true}); 
     var spryselect5 = new Spry.Widget.ValidationSelect("spry_region", {isRequired:true}); 
    } 
    else{ 
     $(".show_location").hide(); 
     var spryselect4 = new Spry.Widget.ValidationSelect("spry_country", {isRequired:false}); 
     var spryselect5 = new Spry.Widget.ValidationSelect("spry_region", {isRequired:false}); 
    } 
}); 
$("#location_option").change(); 

/* If price selected */ 
$("#price_option").change(function() { 
    if ($("#price_option").val() == "price"){ 
     $(".show_price").show(); 
     /* activate spry */ 
     var sprytextfield2 = new Spry.Widget.ValidationTextField("spry_price", "none", {isRequired:true}); 
     var spryselect7 = new Spry.Widget.ValidationSelect("spry_price_tax", {isRequired:true}); 
    } 
    else{ 
     $(".show_price").hide(); 
     var sprytextfield2 = new Spry.Widget.ValidationTextField("spry_price", "none", {isRequired:false}); 
     var spryselect7 = new Spry.Widget.ValidationSelect("spry_price_tax", {isRequired:false}); 
    } 
}); 
$("#price_option").change(); 

/* If date selected */ 
$("#date_option").change(function() { 
    if ($("#date_option").val() == "date"){ 
     $(".show_date").show(); 
     /* activate spry */ 
     var sprytextfield3 = new Spry.Widget.ValidationTextField("spry_start_date", "none", {isRequired:true}); 
     var sprytextfield4 = new Spry.Widget.ValidationTextField("spry_finish_date", "none", {isRequired:true}); 
    } 
    else{ 
     $(".show_date").hide(); 
     var sprytextfield3 = new Spry.Widget.ValidationTextField("spry_start_date", "none", {isRequired:false}); 
     var sprytextfield4 = new Spry.Widget.ValidationTextField("spry_finish_date", "none", {isRequired:false}); 
    } 
}); 
$("#date_option").change(); 

답변

0

내가 사용하여 정렬 한 :

spryselect4 = new Spry.Widget.Utils.destroyWidgets("spry_country"); 
1

:

var spryselect4 = new Spry.Widget.ValidationSelect("spry_country", {isRequired:false}); 

넣어 :

spryselect4.reset(); // remove the error message 
spryselect4.destroy(); // remove the validation 
+0

덕분에 짝짓기, 그것을 시도했지만 모든 sprys을 파괴하는 것 같았다. – monsterboy

+0

정말 확실합니까? 나는 당신의 제안을 시도했기 때문에 아무 일도 없었습니다. – Gustonez

+0

파이어 폭스, 크롬 및 다른 조합으로 테스트 한 결과 제대로 작동하는 것 같습니다. – monsterboy