zoukankan      html  css  js  c++  java
  • jQuery动态设置下拉框selected

    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');
    });
    
    
  • 相关阅读:
    Server.MapPath()
    如何系统学习网络攻击技术
    查询数据库中有多少表、视图、存储过程
    测试种类
    linq使用Distinct()
    ASPxPivotGrid隐藏列
    Jenkins:Linux下安装部署步骤
    Jenkins:【测试设计】使用jenkins 插件Allure生成漂亮的自动化测试报告
    Python:Python 自动化测试框架 unittest 和 pytest 对比
    Jenkins:插件安装方式及插件下载地址
  • 原文地址:https://www.cnblogs.com/ghq120/p/9537596.html
Copyright © 2011-2022 走看看