2012-11-26 1 views
3

jQuery 유효성 검사 플러그인을 사용하여 드롭 다운의 유효성을 검사하려고합니다. 나머지 양식을 올바르게 검증합니다. 그러나 드롭 다운에서는 작동하지 않습니다.jQuery 유효성 검사 플러그인 : 드롭 다운의 유효성을 검사하는 방법

다음
$('#campaignForm').validate({ 
    rules: { 
     campaign_name: { 
      required: true 
     }, 
     html_url: { 
      required: { 
       depends: function(element) { 
        return $('#html_url').val() == 'none'; 
       } 
       } 
     } 
    }, 
    messages: { 
     campaign_name: 'Please enter a campaign name', 
     html_url: 'Please select a template' 
    } 
}); 

내 HTML됩니다 :

<select name="html_url" id="html_url"> 
<option value="none">Select One...</option> 
... 
</select> 

내가 뭘 잘못하고 여기에

내 jQuery를 무엇입니까? 변수 이름이 어떻게 든 충돌합니다. 캠페인 이름 규칙이 올바르게 작동합니다. 당신은 단지 select 요소 required를 확인하려면

+0

'! ='없음 '을 의미합니까? –

+0

둘 다 시도해 봤지만 메시지를받지 못했습니다. 그것이 올바르게 검증되고 메시지가 표시되지 않을 수 있습니까? 그렇다면 어떻게 표시 할 수 있습니까? – sehummel

+0

이것은 실제로 문제의 일부일 수 있습니다. http://stackoverflow.com/a/9890284/139010 –

답변

9

, 당신은하지 않기 때문에 다른 요소에 "따라"depends:를 사용하지 않을 것입니다. 사용하는 경우 depends 속성은 required 규칙을 단순히 토글하는 것입니다. 여기에있는 문제는 required 규칙이 아닙니다 ... 토글 할 필요가 없습니다. 모든 옵션에 이미 value이 포함되어있는 경우 required 규칙이 작동하지 않습니다. 이는 required이 항상 만족되기 때문입니다.

기본 옵션으로 value=""을 사용하고 규칙을 다른 요소와 마찬가지로 설정하십시오.

<option value="">Select One...</option> 

jsFiddle DEMO

HTML :

<form id="campaignForm"> 
    <select name="html_url" id="html_url"> 
     <option value="">Select One...</option> 
     <option value="one">ONE</option> 
     <option value="two">TWO</option> 
    </select> 
    <input type="submit" /> 
</form>​ 

jQuery를 : 불꽃 말했듯이 어떤 이유로 공백으로 값을 설정할 수없는 경우

$(document).ready(function() { 
    $('#campaignForm').validate({ 
     rules: { 
      html_url: { 
       required: true 
      } 
     }, 
     messages: { 
      html_url: { 
       required: 'Please select a template' 
      } 
     } 
    }); 
});​ 
+0

'value = ""'를 사용하는 이유는 무엇입니까? 왜''depend : "required"'가 작동하지 않는가? –

+1

@Prashant 왜냐하면'value'가 공백으로 설정되어 있지 않기 때문에 플러그인은 선택이 없다는 것을 어떻게 알 수 있습니까? 'value = ""는 플러그인을 알려주는 선택입니다 *** 선택 사항은 없습니다 ***. 'depends' 속성은'required' 규칙 만 토글합니다. 그러나'required' 규칙은 항상 만족되기 때문에'required' 규칙은 모든 옵션이 이미'value'를 포함하고있을 때 작동하지 않을 것입니다. – Sparky

+0

@alka, 덧글은 새로운 질문을하기위한 것이 아닙니다. 그러나 SO를 검색하면 동일한 질문이 여러 번 묻습니다. 내 대답에 설명 된대로'value = ""'를 사용하거나 사용자 정의 메소드를 작성해야합니다. – Sparky

3

, 기본 필수 사전 설정 대신 사용자 고유의 JQuery 유효성 검사 함수를 추가 할 수 있습니다.

$.validator.addMethod("aFunction", 
    function(value, element) { 
     if (value == "none") 
      return false; 
     else 
      return true; 
    }, 
    "Please select a value"); 

$('#campaignForm').validate({ 
    rules: { 
     campaign_name: { 
      required: true 
     }, 
     html_url: { 
      aFunction: true 
     } 
    }, 
    messages: { 
     campaign_name: 'Please enter a campaign name', 
     html_url: 'Please select a template' 
    } 
}); 
관련 문제