您的位置:首页 > Web前端 > JQuery

冒泡法解决Jquery 下radio和checkbox的提交空值检查问题

2010-07-28 15:12 288 查看
这些日子一直在做投票,经过学习,终于做成了后台的所有和前台的显示。

刚刚做提交的时候,一件重要的事情,排空提醒了我。

每一题的选项input有生成的不同的name,题量和name都未知,有单选和多选,怎么判断用户没有按要求点击?

很自然的想到在不同题型的情况下做判断。这个当然不是重点。重点是,我们怎么选出一个题的一组选项按钮,并且进行判断操作。他们只有一个特征,就是name相同,根据这个特征,自然就能想出解决的办法了。

我接触过VB和Java语言,说来笑话,虽然基本等于没学,但是其中一些比较有趣的算法还是很感兴趣,这两种语言刚学循环的时候基本上都要讲一讲排序。听到这两个字明朗了吧。我要用冒泡排序法将有特征的一组值选出来!

基本原理是这样的:假定一个name然后和符合条件的input name比较,如果不相同就把input name的值给假定的name,再通过选择器和name值将这一组值选出来,判断处理并标记。循环,将改变过的假定的name值与下一个input name值比较,以此循环,直到所有的值都被标记为止。循环结束!

神奇吧,思想的神奇性!看来没有什么没有用的知识,只看你能不能学精!下面给出代码:

function  check_all()
{
$("input[sj]").attr("done","done")//初始化属性
var name_id=0;//定义name初始值,冒泡法解决
var input_size=$("input[sj]").size();
//alert(input_size);
var str="";
for(var i=0;i<input_size;i++)
{
var input_name=$("input[done=done]").eq(0).attr("name");
// alert(input_name);

if(input_name!=undefined&&input_name!=""&&input_name!=name_id)//debug 保证查找是有结果的
{
name_id=input_name;
//查找所有input_name相同的项,进行处理并标记
$("input[name='"+name_id+"']").removeAttr("done");
var type=$("input[name='"+name_id+"']").eq(0).attr("type");
//处理函数
//alert(name_id);alert(type);

if(type=="radio")//必选而且只能选一个
{// alert("a")
var check_num=$('input:checked[name='+name_id+']').size();
//alert(check_num);
if(check_num!=1)
{
str+= "您还有单选题没有做哦,是不是点掉了";
}
}
if(type=="checkbox")//至少选一个
{
var check_num=$('input:checked[name='+name_id+']').size();
//alert(check_num);
if(check_num<1)
{
str+= "您还有多选题没有做哦,是不是点掉了";
}
}
}//排空if
}// for
$("#msg").html(str).show();
}//function


呵呵,代码的注释多了些,菜鸟嘛,方便排错!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: