jQuery动态设置下拉框selected

摘要:
在线方法如下:Select ASelect BSelect C//方法1:$。attr//方法2:$。发现attr//方法3:有些人还说jquery的更高版本应该像$prop;无论使用何种方法,上述方法在低于1.4.2(含)的jquery版本中都不起作用,并且在更高版本中也不起作用!!!$过滤器属性;解决方案2:子字符串匹配。选择文本包含给定字符串的选项。

1、jQuery动态根据内容设置下拉框selected

需求就是根据下拉框的值动态的设置为selected,本以为很简单,网上一大推的方法,挨着尝试了之后却发现没有一个是有用的。网上的做法如下:

<select id="selectID ">
    <option>选择A</option>
    <option>选择B</option>
    <option>选择C</option>
</select>
// 方法一:
$("#selectID option[text='选择B']").attr("selected", "selected");
// 方法二:
$("#selectID ").find("option[text='选择B']").attr("selected",true);
// 方法三:也有人说高版本的jquery应该写成下面的样子
$("#selectID option[text='选择B']").prop("selected", true);

不管是用什么方法都不起作用,继续查找更多资料后上面这些方法在jquery低于1.4.2的版本(含)中有效,在更高版本中无效!!!

注意!!!上面的方法均不起作用,有效的方法如下:

解决一:精确匹配,选择文本与所给字符串完全一样的option。(这个方法的也是没有尝试过,是否有效有待验证)
$('#selectID option').filter(function(){return $(this).text()=="选择B";}).attr("selected",true);  
解决二:子串匹配,选择文本包含所给字符串的option。
$("#selectID option:contains('选择B')").attr('selected', true);  

2、struts2的action中的方法重复执行的原因

struts2中使用json插件(struts2-json-plugin)执行ajax处理时,如果方法名是get方法的时候,方法会莫名其妙的执行两次。
各种debug都找出原因在哪里,差点以为自己写的代码中邪了。又是继续百度之后,找到的问题的原因

原因:struts2 中JSON的原理是在ACTION中的get方法都会序列化,前面是get的方法只要没指定不序列化,都会在序列化时再执行一次。

解决方法:

1、Action中的业务方法前不要以get开头 (属性的get set 除外)
2、用@JSON(serialize=false)指定方法不序列化 (此办法没有亲自实现,仅供参考)

没有尝试添加注解的方式解决问题(因为改方法名更方便,并且get开头的方法名也不规范),所以以后在给方法起名字的时候,还是要十分注意,不要造成不必要的麻烦。

3、获得userAgent(用户代理)的方法

通过userAgent可以判断用户当前操作的是桌面端设备还是移动设备,可以根据不同的设备进行适配。
js获取的方法:

var userAgent = navigator.userAgent

java后台写法:request为HttpServletRequest

String userAgent = request.getHeader("User-Agent");

4、css实现两端对齐的3种方法

本人是一个css渣,就不在这里班门弄斧了,给个传送门,可以参考这位大神的讲解,文末也有移动端文本两端对齐示例,可以说是非常好的学习资料了。
传送门:css实现两端对齐的3种方法

5、移动端模态框弹出,禁止底层滑动

//模态框弹出后,给主页面绑定触摸事件,阻止滑动
$('#main').unbind();
$('#main').on('touchmove', function(ev) {
    ev.preventDefault()
});
//模态框关闭后,打开滑动,给关闭按钮添加事件
$('#btnRyoushou').unbind();
$("#btnRyoushou").click(function(){
    $('#main').unbind('touchmove');
});

免责声明:文章转载自《jQuery动态设置下拉框selected》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇FastJSON反序列化学习Flume简介及安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JQuery实现简单的服务器轮询效果

很多论坛都有进入后,弹出提示,说有多少封邮件没有看,或者是一个oa系统,进入后,提示有多少个任务没有做。每隔一段时间会提示一次,但是如何实现呢。其实,利用jquery的话,会比较简单,核心元素就是json格式解析和setInterval()函数。下面一起来实现: 首先,我们default.aspx的页面如下所示: 代码 上面代码主要利用ajax函数向Re...

JQuery 限制文本输入只能输入数字(可自定义正则表达式)

var JVerify ={ role: { number: /[0-9/]/, decimal: /[0-9./]/, code: /[0-9A-Z]/}, Verify: function() { for (var prop inJVerify.role) { $("[role^='" +...

layui select 下拉框 级联 动态赋值 与获取选中值

//下拉框必须在 里 不然监听事件没有作用 <div class="layui-form" > <div class="layui-inline"> <label class="layui-form-label">选择项目:</label>...

使用jquery-qrcode生成二维码

使用jquery-qrcode生成二维码 目录导航 一、使用jquery-qrcode生成二维码 二、JS生成中文二维码 一、使用jquery-qrcode生成二维码 先简单说一下jquery-qrcode,这个开源的三方库(可以从https://github.com/jeromeetienne/jquery-qrcode 获取), qrcode....

用PopupWindow做下拉框

    最近在做下拉框,本来想用spinner,可是spinner达不到项目要求,跟同学同事问了一圈,都在用popwindow, 网上看了一下,popwindow挺简单的,可定制性挺强的,符合我的要求,所以,借鉴网上看的代码,自己撸了一 遍。写篇博客以防忘记。     首先,先写个自定义布局,代码如下 <?xml version="1.0" enc...

HTML、jsp页面中radio,checkbox,select数据回显功能,默认被选中问题

最近常常遇到各种复选框、单选框、下拉框的默认被选中的问题,开始也是绞尽脑汁的想办法,今天写一篇学习总结的博文来写一下学习总结。 单选框(radio)默认被选中: 一、jstl技术进行回显 <input type="radio" name="sex" <f:if test="${c.sex=='男' }">checked="checked"...