jQuery检查表单中是否有data属性为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变成了一个数组,使用长度进行检查也可能不是最好的方法。

谁能提供修复/替代解决方案?

谢谢

使用has属性选择器

'[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();
}

我在我的表单验证中使用这个:

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

返回真或假,您可以返回值。像这样使用:

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

所以在你的例子中需要更改为val

<input data-val="value">

希望有帮助

try

   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/

相关内容

最新更新