js或jquery的验证问题:

例如:<tdid="one"><inputname="t1"type="text"id="a"value=""><inputname="t1"type="text"id=... 例如:
<td id="one">
<input name="t1" type="text" id="a" value="">
<input name="t1" type="text" id="b" value="">
<input name="t1" type="text" id="c" value="">
</td>
<td id="two">
<input name="t1" type="text" id="d" value="">
<input name="t1" type="text" id="e" value="">
<input name="t1" type="text" id="f" value="">
</td>
我想找到指定td下的所有value,例如我在id=“a”的input中填写一个值那么在我提交表单的时候要验证id=b和id=c的value不能为空而 第二个td中的input则不验证,反过来也一样(id=a 或b或c中我任意在一个input中填写值都要验证其他两个 不能为空) 希望各位大虾帮帮忙
^_^是这样的, 这里一共四行如果都为空 可以直接提交数据, 如果在 第一行的某一列 添加值了那么在提交的时候就要判断这一行的其他列是否为空,如果有一个为空 就不让提交 而其他行不尽心判断,感觉你好厉害啊O(∩_∩)O 希望能帮我解答
展开
 我来答
huibo865686
2014-02-21 · TA获得超过916个赞
知道小有建树答主
回答量:325
采纳率:80%
帮助的人:265万
展开全部

好吧,这个很简单的

html

<td id="td">
  <input name="t1" type="text" value="">
  <input name="t2" type="text" value="">
  <input name="t3" type="text" value="">
</td>
<button type="submit" id="submit">submit</button>

js

function Valid(wrap){
  var allEmpty = true;//全部为空
  var notAllEmpty = true;//全部不为空
  wrap.find(':text').each(function(){
    var val = $(this).val();
    allEmpty = !val && allEmpty;//只要有一个不是空的,就为false,否则为true
    notAllEmpty = val && notAllEmpty;//只要有一个是空,就为false,否则为true
  });
  return allEmpty || notAllEmpty;//全部是空的,就直接返回true
                                  //否则返回是否全部不为空
}


开始使用

$(function(){
  var td = $('#td');  
  //可以在任意地方触发你的校验程序,比如提交的时候
  $('#submit').click(function(){
    if(!Valid(td)){
      //这里可以做一些提示
      alert('请将资料填写完整');
      return false;
    }
  });
})
追问

^_^是这样的, 这里一共四行如果都为空 可以直接提交数据, 如果在 第一行的某一列 添加值了那么在提交的时候就要判断这一行的其他列是否为空,如果有一个为空 就不让提交 而其他行不尽心判断,感觉你好厉害啊O(∩_∩)O 希望能帮我解答

追答

- -我刚才给你的明显就可以实现这个啊

很简单的嘛

$(function(){
  $(':submit').click(function(){//当点击提交按钮的时候
     var isSubmit = true;//是否允许提交
     $('tr').each(function(){//对所有的行进行校验
       isSubmit = Valid($(this)) && isSubmit;
       //如果有某一行无法通过验证(全部为空或者全部不为空)
       //isSubmit就为false
     });
     return isSubmit;//这里如果验证不通过,阻止继续提交表单
  });
});
whenevery00
2014-02-21 · TA获得超过430个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:239万
展开全部
var status = true;
$('td').each(function(index){
var sts,message;
$(this).find('input').each(function(){
if($.trim(this.value)){
sts = true;
}else if(!message){
message = '第‘+index+’列数据不完整';
}
});
if(sts && message){
alert(message);//这里是获取哪个地方不通过 如果一行有2个地方不通过 那么提示第一个
return status = false; //如果某行不通过 那么不需要检测下一行了
}
});
if(!status ){
alert('验证不通过');//这里做不通过处理
}

不管几行几列都一样可以处理的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式