芒果小站

  1. 全球最具业界良心的主机 - Linode

    毫无疑问,目前做得最好的主机供应商

    猛击这里查看

  2. 芒果小站目前使用的主机 - Linode

    客服响应快,随时退款,XEN 架构稳定

    猛击这里查看

  3. 最好的日本东京线路主机 - Linode

    可选弗里蒙特、达拉斯、亚特兰大、纽瓦克、伦敦、东京机房

    猛击这里查看

  • 1
  • 2
  • 3
切换到精简模式
4

YUI3:判断表单元素是否为空或选中

作者 芒果/分类 代码/发布于 2010-12-23 00:39

假设一个场景,某一个表单中包含文本框、单选框、复选框三种输入框 (input) 类型。如果要求表单元素至少有一个文本框已输入,或者有单选框或复选框被选中。那该如何处理呢?

按照通常的逻辑,肯定是用循环分别遍历该表单中的所有表单元素,进行逐一判断。

之前提到过YUI3 中对 NodeList 使用 get 方法操作获取其某个属性,直接返回一个包含所有节点属性值的数组!

例如,获取表单中所有复选框 (checkbox) 的 checked 属性,且假设所有 checkbox 均未被选中:

Y.all(input[type="checkbox"]).get('checked'); //需要引用 selector-css3 模块

返回结果是一个由布尔值构成的数组:

[false, false, false, ..., false]

如此一来,要想判断表单元素是否为空或选中,只要分别检索三种类型输入框返回的数组成员即可:

var arrText = Y.Lang.trim(Y.all('input[type="text"]').get('value')) || [],
    arrRadio = Y.all('input[type="radio"]').get('value') || [],
    arrCheckbox = Y.all('input[type="checkbox"]').get('value') || [],
/*
arrText.join(''); //将数组成员拼接成字符串
Y.Array.indexOf(arrRadio, true); //获取 arrRadio 数组中 true 的下标
Y.Array.indexOf(arrCheckbox, true); //获取 arrCheckbox 数组中 true 的下标
*/
if(arrText.join('') == '' && Y.Array.indexOf(arrRadio, true) < 0 && Y.Array.indexOf(arrCheckbox, true) < 0){
    Y.log('表单元素一个都没选中~');
}

注:YUI3 中 Array 类中的 indexOf 方法在找不到相应参数后默认返回 -1。

版权所有,转载请注明出处。
转载自 <a href="http://mangguo.org/yui3-check-form-element-empty-or-checked/" title="YUI3:判断表单元素是否为空或选中" rel="bookmark">YUI3:判断表单元素是否为空或选中 | 芒果小站</a>
如果喜欢这篇文章,欢迎订阅芒果小站以获得最新内容。

已经有 4 条群众意见

  1. uu235 /2010-12-24 21:49

    平安夜快乐! 回应

    #1
  2. 时时彩群 /2010-12-26 16:53

    感谢楼主分享的好文章!!! 回应

    #2
  3. dav /2010-12-27 11:50

    网站的风格真不错! 回应

    #3
  4. 牛在天 /2010-12-28 16:39

    每次来你这里总是会学到很多的东西。 回应

    #4

下面我简单说几句