2011-12-15 4 views
2

フォーム内の要素にdata-valというデータ属性があるかどうかを検出しようとしています。フォームに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"> 

希望をVALするために必要な?ありがとう – 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') == ''; 
} 

それはあなたが値を返すことができ、trueまたはfalseを返します。このようにそれを使用してください:あなたのケースの変更でそう

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

は役立ちます:)

関連する問題