2011-12-15 2 views
2

양식 내의 요소에 data-val이라는 데이터 속성이 있는지 검색하려고합니다.jQuery에서 데이터 속성이 data-val 인 요소가 있는지 확인하십시오.

그렇다면 if 문으로 묶인 함수를 실행하십시오. 나는 이것을 시도했다 :

  var checkValidation = $('.uiModalContent').closest('form').find('input[data-val="true"], textarea[data-val="true"]'); 

      if(checkValidation.length > 0) { 

       $.validator.unobtrusive.parseDynamicContent('.uiModalContent'); 

      } 

그러나 checkValidation가 배열되고 길이를 사용하여 확인하는 것은 아마도이 일을하는 가장 좋은 방법이 아니기 때문에 아마 예상대로 작동하지 않습니다.

수정 프로그램/대체 솔루션을 제공 할 수있는 사람이 있습니까?

감사

답변

6

사용 has attribute selector

'[data-val]' 

즉 :

$('input[data-val], textarea[data-val], select[data-val]').chain().stuff(); 

[data-val]의 값이 같은 "true"이라고 의미 [data-val="true"] 사용 :

<element data-val="true" /> 

var $elems; 
$elems = $('.uiModalContent').closest('form').find('[data-val]'); 
if ($elemens.length) { 
    doSomething(); 
} 
+0

당신이 예를 보여줄 수

<input data-val="value"> 

희망을 발해야합니다? 감사합니다 – Cameron

+0

해당 특성을 가진 폼 내에서 요소가 발견되면 어떻게 그 함수를 실행합니까? – Cameron

+0

아직도 해당 특성을 찾을 경우 해당 함수를 실행하는 방법을 잘 모르겠다 – Cameron

0

내 폼 valiation에

var boolFlag=false; 
    $('.uiModalContent').closest('form') 
    .find('input, textarea').filter(function(){ 
     $.each($(this),function(k,v){ 
     if($(v).data('val')) boolFlag=true;    
     }); 
    }); 

    if(boolFlag) { 
     $.validator.unobtrusive.parseDynamicContent('.uiModalContent'); 

    } 

http://jsfiddle.net/JHreW/15/

+0

@Cameron 답변을 수정했습니다. – Rafay

1

내가 이것을 사용을 시도해보십시오

// CHECK REQUIRED 
$.fn.required = function(){ 
    return $(this).data('required') == ''; 
} 

그것은 참 또는 거짓 반환, 당신은 값을 반환 할 수 있습니다. 이처럼 사용하여 귀하의 경우 변화에 따라서

var required = $('input').required(); 
if(required) // Do something 

도움이 :)

관련 문제