JQuery使用过程中常用技巧、方法

1.检查input是否为空

function check() {
    // $.trim()方法:去掉字符串中的前后空格
    var value = $.trim($("选择器").val())
    if(value == '') {
        alert("用户名不能为空");
        return false;
    }
    return true;
}

 实例:

$(function(){
    $("submitBtn").click(function(){
        var flag = true;
        $(".input1").each(function(){
            if($.trim($(this).val()) == ''){
                alert("输入不能为空!");
                flag = false;
                return false;
            }
        })
        if(flag == true){
            alert("添加成功");
        }
    })
})

  该技巧通常使用在表单验证中。submitBtn是表单中的sumbit类型。如果返回值是false,那么将会阻止该表单提交内容。
  注意:即使阻止表单的内容提交,但是在ssm框架中,表单还会action到指定url中,此时因表单内容为空,可能会引起数据库操作错误(错误码:500)。解决方法:在Controller中添加逻辑验证。如下:


  如果传入的参数合法,那么返回成功操作逻辑(这里没有返回zhi);

 Q1:为什么要用if flag == true,而不是直接使用如下代码?

alert("添加成功");
return true;

  因为JQuery中的each遍历中,并没有break、continue方法。如果想跳出循环或continue,只能以return false、return true代替。但return false是跳出整个each循环,return true仅仅是跳出本次循环。如果使用上述代码,一旦添加成功,就会出现好多次alert("添加成功");
  所以,用一个flag,可以实现类似break的操作。
  但是有缺点:因为不管怎么样,都会提交给action,所以即使输入不合法,也会向服务器请求一次,会造成服务器资源不必要的浪费。解决方法:使用form的onsubmit属性。同时也要使用flag标记,返回函数值(false true)。如下:


image.png

  这样一来,表单验证就会在客户端本地进行验证,而不用提交到服务器进行验证。如果逻辑正确,假设用户输入不正确并点击提交,那么会弹出alert窗口;同时用户填入的信息并不会消失。如下:

点击确定前

点击确定后,仍然保存信息

  需要注意:于客户端上检验合法性时,仅适用于一些没有风险的检验,否则请交给服务端检验(validation jar包)。


2. 获得容器的属性

$("选择器").attr("属性名");

 实例:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
        <script src="jquery.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <input type="text" class="name1" id="ipt1" value="test1"/>
        <input type="text" class="name1" id="ipt2" value="test2"/>
        <input type="button" id="btn1" value="提交"/>
        <script>
            $(function(){
                $("#btn1").click(function(){
                    $(".name1").each(function(){
                        if($(this).val()=="123"){
                            alert($(this).attr("id"))
                        }
                    })
                })
            })
        </script>
    </body>
</html>

  如果input内为123,则弹出该input的id值。



  有时候可用于:form表单中有多个submit,想要给每个submit赋予不同的action,那么就可以使用attr()方法修改action属性。如下:


第一个参数为属性名,第二个参数为属性值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容