2013-06-15 3 views
8

jQueryValidate에서 다른 특정 입력란이 비어있는 경우에만 입력란을 만들려고합니다. 그래서 인터넷에서 검색 한 결과, 다음과 같이했습니다.jQueryValidate - 필수 입력란이 작동하지 않습니다.

rules: { 
    marque: { 
      required: { 
       depends: function() { 
        if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) { 
         return true; 
        } 
        else { 
         return false; 
        } 
       } 
      } 
    } 
} 

불행히도, 작동하지 않습니다. 하지만 이렇게하면 :

depends: function() { 
    if (($('#add_marque').val() == "Ajouter une marque" && $('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) { 
      alert("Here!"); 
      return true; 
     } 
     else { 
      return false; 
     } 
} 

경고 상자가 나타납니다. 그래서, 제 테스트가 효과가있는 것 같습니다. 누구나 내가 잘못한 것을 말할 수 있습니까? jQueryValidate와 함께 jQuery 1.8.3 및 qTip2를 사용하고 있습니다. 대단히 감사합니다!

답변

9

귀하의 구문과 사용법은 귀하가 제공 한 것부터 정확합니다. 문제를 해결해야하므로 먼저 시도해보십시오.

marque: { 
    required: true; 
} 

간단합니다. 오류 메시지가 나타 납니까? 예 다음 시도 할 경우이

marque: { 
    required: { 
     depends: function() { return true; /* or false */ } 
    } 
} 
+0

답장을 보내 주셔서 감사합니다. 나는 이것을했고 아무 일도 일어나지 않았다. 어쩌면 문제는이 필드가 드롭 다운 목록이라는 것입니다. 그래서 저는 다른 형식으로 사용한 개인 방법을 사용했습니다. "true"또는 "false"대신 정수를 반환하고 이제는 작동합니다. – LancelotKiin

4

당신은 정말의 depends 옵션없이 이렇게 바로 required 객체에서 직접 함수 작업을 할 수 있어야한다 : 여기, 간단한 예를

rules: { 
    marque: { 
      required: function() { 
       if (($('#add_marque').val() == "Ajouter une marque" && (('#marque').val() == -1) || ($('#add_marque').val() == "" && $('#marque').val() == -1)) { 
        return true; 
       } 
       else { 
        return false; 
       } 
      } 
    } 
} 

이 작업을 참조하십시오 : http://jsfiddle.net/ryleyb/3hqH6/1/

+2

'if ... else' 대신에'return (IF CONDITION HERE)'을 사용할 수 있습니다. – rybo111

+1

나는 질문자를 위해 물건을 혼동하고 싶지 않았습니다 - 내가 해결하고있는 문제는'rules' 목적. 그래도 좋은 지적! – Ryley

+0

이것은'depends' 속성이 적절하다고 여겨지는 다른 필드의 특정 값을 테스트해야하는 비슷한 상황을 해결하는 데 도움이되었습니다. 제공된 함수에 대한 Validator의'.call()'메서드는 오류가 발생했지만 예상대로 수행 된 부울 대신 동일한 함수가'required'에 전달되었습니다. –

관련 문제