【问题标题】:jquery validation plugin for dynamic element ID用于动态元素 ID 的 jquery 验证插件
【发布时间】:2012-12-24 06:59:59
【问题描述】:

我需要验证一堆具有动态 ID 的文本框。这些元素在文档就绪时可用,而不是动态插入。

<input type="text" class="y"/>
<input type="text" class="y"/>
<input type="text" class="y"/>
<input type="text" class="y"/>
<input type="text" class="y"/>

规则是前两个字段之一是必需的。我不知道如何在不知道元素 ID 的情况下进行验证。

编辑: 输入元素是循环生成的,所以我不能为前两个添加类 required。我正在寻找使用 jquery Validation 插件http://docs.jquery.com/Plugins/Validation的解决方案

【问题讨论】:

  • 总是前 2 个元素或要求被更改?
  • 你选择哪些标准需要验证?
  • 不输入有name 才能提交吗?
  • 总是前 2 个被验证。为了澄清,我跳过了名称和其他属性。

标签: jquery jquery-validate


【解决方案1】:

试试这个

$(document).ready(function() {
if($('input:text:eq(0)').val()=="" && $('input:text:eq(1)').val()==""){
 //show error
}
});

【讨论】:

  • 没有:second选择器使用:eq(index)选择器或eq(index)方法
  • close...需要是一个或另一个才有效...所以在ifinput 中使用|| 而不是&amp;&amp;input 没有text() 方法..使用val()
  • @charlietfl:但他想要其中任何一个是强制性的......那么我猜如果两个字段都是空的,它应该抛出错误?
  • 哎呀..我的错..你是对的..这里是凌晨
  • OP 说他正在寻找使用 jQuery Validate 插件的解决方案。
【解决方案2】:

以下使用过滤器创建值不为空的 2 个输入的集合。测试长度提供了有效性测试

var valid=$('input').slice(0,2).filter(function(){
   return $(this).val() !='';
}).length

if(valid){
  /* can submit*/
}

验证插件解决方案:

 $('input:lt(2)').addClass('required');

注意:调整选择器以更好地适应表单,因此它不会找到页面中的每个输入,或表单中不属于您要验证的集合的输入。您可以将这些输入包装在一个字段集中并给字段集一个 ID

【讨论】:

  • OK...通过添加类required 很简单。我更新了答案。您可以使用带有验证插件的类,或编写rules 对象。
【解决方案3】:
$(document).ready(function() {
if($('input:text:lt(2)').val()=="" ){
 //error 
}
});

【讨论】:

  • 不会工作 val() 只会返回第一个元素的值
【解决方案4】:

我认为你想要的是这样的:

function isValid(){
    var cont=0;
    $('input:text').each(function(i, obj) {
        if(i<2 && obj.value){
             cont++; 
        }
      });
    return cont==2;
}

【讨论】:

    【解决方案5】:

    试试这个:

    您可以像这样使用:lt(); 来做到这一点:

    $("表单输入:lt(2)");

    这会选择在小于传递的索引处匹配的所有元素,第一个和第二个元素是索引 0 和 1,并将匹配此选择器:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 2012-11-21
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      相关资源
      最近更新 更多