jquery进行and选择操作

工作中遇到需求,就是form里面所有的checkbox,radio都是必填的。
原来的做法是写多个function进行检查,部分代码如下

function checkElement(c) {
for (var i=0;i<c.length;i++) {
if (c[i].checked) return true;
}
c[0].focus();
alert("请完成所有答题!");
return false;
}
需要传入要检查的radio或者checkbox。
原来的写法是要把所有要检查的object都写进去,比如

result=checkElement(form1.check_1)&&checkElement(form1.radio_2);
如果有10道8道还可以,如果多的话,就要写好多,还容易漏掉,出错。
这次有100多道题目,所以想用jquery来选择所有的checkbox和radio,然后再来检查。
代码如下:

var myt="";
//用于存储生成的js校验字符串
//每次load页面,只生成一次,第一次的速度还是有点慢的
function check() {
var result = true;
if (myt==""){
//如果没有myt,就选择所有要检验的element列表,用来校验。
var alle=$("select[@name='text_79'],input[@type='radio'],input[@type='checkbox']");
for (var i=0;i < alle.length;i++) {
var myobj = alle[i];
if (i==0||alle[i].name!=alle[i-1].name){
if (i>0) myt+="&&";
//根据不同的类型,调用不同的check function
//应该写成一个函数,在函数里面判断比较好:S
if (myobj.type!="select-one")
myt+="checkElement(form1."+myobj.name+")"+"\n";
else
myt+="checkText(form1."+myobj.name+")"+"\n";
}
}}
//最后执行拼出来的js语句
eval("result = "+myt+";");
if (!result) return false;
return true;
}
checkText是检验text的值的程度,是否为0,如果0就是未填写
花了点时间的是
var alle=$(”select[@name=’text_79′],input[@type=’radio’],input[@type=’checkbox’]”);
这一句,选择多个类型的element

但是上述写法有个问题,就是顺序和自然顺序不一样。还需要改进。

上面的and有点像union,如果是同一个element的属性的and,用下面的方法
$(”input[@name^=’S_’][@name$=’_R’]”).autocomplete(”autocomplete_backend.jsp”);

上面的是,input,名字以S_开始,并且以_R结束的元素。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值