2013-11-24

前言:

上周在工作中遇到了一些跟JS以及前台交互的问题,虽然算不上多么高深,但是在解决时也走了一些弯路,所以就总结一下。

1.    JS获取checkboxList所选的值

这个的应用场景是需要在前台获取checkboxList的所选的值,然后作为dataService的参数传递为后台的方法。

在aspx页的界面显示代码如下:

<div>
<label>请选择国家:</label>
<asp:CheckBoxList ID="Cblist" runat="server">
<asp:ListItem Value="CN" Text="中国" />
<asp:ListItem Value="JP" Text="日本" />
<asp:ListItem Value="US" Text="美国" />
<asp:ListItem Value="UK" Text="英国" />
</asp:CheckBoxList>
<input type="button" value="确定" onclick="getCheckBoxListSelectedVales()" />
</div>

但是在浏览器里边渲染过之后就成了这样子,从页面的渲染代码看,我们几乎看不出有什么特殊的属性来帮助我们获取被选中的项的值

<div>
<label>请选择国家:</label>
<table id="Cblist">
<tr>
<td><input id="Cblist_0" type="checkbox" name="Cblist$0" value="CN" /><label for="Cblist_0">中国</label></td>
</tr><tr>
<td><input id="Cblist_1" type="checkbox" name="Cblist$1" value="JP" /><label for="Cblist_1">日本</label></td>
</tr><tr>
<td><input id="Cblist_2" type="checkbox" name="Cblist$2" value="US" /><label for="Cblist_2">美国</label></td>
</tr><tr>
<td><input id="Cblist_3" type="checkbox" name="Cblist$3" value="UK" /><label for="Cblist_3">英国</label></td>
</tr>
</table>
<input type="button" value="确定" onclick="getCheckBoxListSelectedVales()" />
</div>

这个时候我们该如何去获取checkboxList的所选值呢?请看如下代码:

functiongetCheckBoxListSelectedVales() {
varcblists=$("[id*=Cblist]");
varselected_value=newString('');
for (vari=0; i<cblists.length; i++) {
if (cblists[i].checked) {
if (selected_value!='')
selected_value+=',';
selected_value+=cblists[i].value;
}
}
alert(selected_value);
}

在以上代码中我们先通过$(“[id*=XXX]”)的方式进行过滤,这句代码的意思是过滤出所有id中包含XXX的元素,这样我们可以得到一个数组。然后F12在开放人员工具里,”脚本”,我们cblists添加监视,可以看到该数组中包含5个数组元素,点击其中某一元素,然后发现他们有一个checked的属性,同时还有value属性,这样我们就可以通过checked属性来判断该元素是否被选中,如果选中再获取其值。

2.    JS将一个数组字符串转换为数组对象

这里的应用场景是获取了一个json对象,但是该json对象并不能满足最终的需要,还需要对其进行修饰、改造。然后新建了一个string对象,将json对象重新进行拼接,最终得到了一个满足需要的字符串,但是最终需要的还是一个对象,这个时候该如何办呢?请看如下示例:

 

 //将一个json字符串转换为对象
var array_string = '[\'中国\',\'日本\',\'美国\',\'英国\']';
array_string = eval('(' + array_string + ')');
if (array_string instanceof Array)
alert('array_string\'s type is Array');
else
alert('array_string\'s type is string');

这里主要用了eval方法,eval(string)方法,主要用来计算某个字符或者执行一段js代码。如上所示需要将一个拼接好的数组形式的字符串转换为一个数组对象,需要在字符串之外加上一个小括号:eval(‘(‘+XXXX+’))

同时这里为了判断该字符串转换后的类型,还用了instanceof,在判断该类型时,很多人会首先想到typeof(),但是typeof()方法,得到的是object,其次typeof能得到的结果只有number,boolean,string,function,object,undefined这几种,对于 Array,Null 等特殊对象使用 typeof 一律返回 object。而instanceof运算符,主要是用来判断某一个变量是否是某个对象的实例,这里需要注意的是这里的 instanceof 测试的 object 是指 js 语法中的 object,不是指 dom 模型对象。

3       JS 为Array添加contains方法

这里的应用场景是需要判断Array中是否包含某一元素,我们知道在string中有contains方法,但是数组里却没有这样的方法,而有些时候可能会需要多次判断数组中是否包含某一元素,所以需要为Array添加一个contains方法,这样可以方便使用,具体代码如下:

//为Array添加Contains方法
Array.prototype.contains = function(obj) {
var i = this.length;
while (i--) {
if (this[i] === obj) {
return true;
}
}
return false;
}
Var countryes=[‘中国’,’美国’,’日本’,’英国’];
if (array_string.contains('中国'))
alert('It\'s China!');

今天就总结到这里了,希望能给大家带来一些帮助。

每日学习心得:Js获取Checkboxlist所选值、instanceof 和typeof区别、为Array添加contains方法的更多相关文章

  1. JS 获取select(多选下拉)中所选值的示例代码

    通过js获取select(多选下拉)中所选值,具体实现如下,有需要的朋友可以参考下,希望对大家有所帮助 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML ...

  2. js获取checkbox复选框获取选中的选项

    js获取checkbox复选框获取选中的选项 分享下javascript获取checkbox 复选框获取选中的选项的方法. 有关javascript 获取checkbox复选框的实例数不胜数.js实现 ...

  3. js 获取当天23点59分59秒 时间戳 (最简单的方法)

    js 获取当天23点59分59秒 时间戳 (最简单的方法) new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60* ...

  4. js获取单选框的值

    js获取单选框的值 var lx= $("input[name='lx']:checked").val();

  5. 每日学习心得:Js基本数据类型常用方法扩展

    2014-02-17 前言: 节后的第一周上班,整个状态调整的还不错,已完全进入正常的工作状态.这一周主要还是对年前项目存在的一些问题进行完善.修整,基本上没有做大的改动.这里就把项目中经常用到的一些 ...

  6. 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码

    2013-9-15 1.    CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...

  7. 通过js获取tinymce4.x的值

    问题的引出: 在使用过程中,用传统的js的方法判断tinymce所选textarea(下面直接称textarea)的值是会出现这样的问题的: 在已有输入内容时,首次提交的时候,依然会弹出js写的警告提 ...

  8. JS获取select选中的值,所有option值

    <select name="myselect" id="myselect"> <option value="2042"&g ...

  9. 获取checkboxlist选中的值以及绑定来自之前选中的来自数据库的值

    //////ps:一下几句都是一个意思,为的是以后有人搜索关键字的时候能定位到这里///checkboxlist绑定选中值///checkboxlist绑定来之mssql数据的值///checkbox ...

随机推荐

  1. 第二个Sprint冲刺第三天

    讨论地点:宿舍 讨论成员:邵家文.李新.朱浩龙.陈俊金 燃尽图: 待解决的问题: 需要将主界面重新布局,下面的是原始主界面: 想实现一个统计的功能,今天就完成了一个基本的布局: 开发感悟:爱在何方

  2. window.opener调用父窗体方法的用法

    应用实例:        function BindWindowCloss() {            $(window).bind('beforeunload', function () {    ...

  3. 【题解】【排列组合】【回溯】【Leetcode】Generate Parentheses

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  4. java apache commons HttpClient发送get和post请求的学习整理(转)

    文章转自:http://blog.csdn.net/ambitiontan/archive/2006/01/06/572171.aspx HttpClient 是我最近想研究的东西,以前想过的一些应用 ...

  5. Linux下删除乱码或特殊字符文件

    今天遇到一个问题,一个文件名是“-MXV9.log”,直接用rm删除的时候就报错,如下: [localhost]rm -MXV9.log rm: illegal option -- M rm: ill ...

  6. ResponsiveSlides.js最轻量级的幻灯片插件

    摘要:ResponsiveSlides.js是一个展示同一容器内图片的轻量级响应式jQuery幻灯片插件它支持包括IE6在内的几乎所有的浏览器,在IE6中还支持最大宽度属性,但在其它浏览器中并不原生支 ...

  7. 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征(转载)

    (一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...

  8. Dialog样式

    <style name="load_dialog" parent="@android:style/Theme.Dialog"> <item n ...

  9. 水灾(sliker.cpp/c/pas) 1000MS 64MB

    大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY所在的城市可以用一个N*M(N,M<=50)的地图表示,地图上 ...

  10. Codeforces Round #372 (Div. 2)

    Codeforces Round #372 (Div. 2) C. Plus and Square Root 题意 一个游戏中,有一个数字\(x\),当前游戏等级为\(k\),有两种操作: '+'按钮 ...