js零散知识

# 同一种类型的事件注册多个事件句柄,后面的不会覆盖前面的事件

# event.which == 13,13代表回车

# parsley.js验证框架

# JSON.stringify, avoid TypeError: Converting circular structure to JSON

# 针对会话缓存,sessionStorage.getItem("zTree_selectNodeId")==undefined这个判断是true

而单独输出,得到的是null

跟null相比肯定得到的是true

#当浏览器前进/后退时,表单里面的值会被清空,但是有的时候又不会被清空

# JQuery-validate校验框架里面,这个名字不能是strMap[roleUuid],这种类型的,带有中括号的,他会将他自动忽视

# select2的多选传递数据是以下形式的,但是在后台会变成字符串,以逗号分隔

# 关于load()函数的用法,

load(null),会抛出一个异常

load(""),前台会死循环

load("url"),错误路径,会抛出404错误

# 校验框架

添加规则      $("#sjhztype").rules("add",{required:true,min:0,messages:{ min:"请选择合作类型"}});  

删除规则      $("#province").rules("remove");  

注意如果你用的是类样式,需要用以下写法,否则只会生效第一个

$(".froleUuid").each(function(){
                            $(this).rules("add",{required:true, messages:{required:"测评角色为必填项"}});
                        });

# 在JS中undefined和null是同等的

# 转义字符用\',别用\"

# js的split和java的不一样啊,a</br>可以解析出两个字符串

#

var weight=$("input[name='strMap[weightPercentage]'][fid='"+value+"']").val();

下面这种写法也可以

$("#weightPercentage-error[fid='"+value+"']").html(errorElement).show();

# 超链接传入当前对象本身this,不能用href,要用onclick

参考博客:http://www.jquerycn.cn/a_12845

# jquery on()

正确写法:

        $(document).on("click","#saveButton_standard",function(){
            formSubmit(root+"/hzjh/mzcp/MzcpStandard/addStandard", "#standardForm");            
        });      

或者

$(document).ready(function(){
  $("p").on("click",function(){
    alert("段落被点击了。");
  });
});

错误写法:

$("p").on("click",function(){ alert("段落被点击了。"); });

# JS 数字相加出现多个小数的问题

1.这是因为Javascript的数字类型是以64位的IEEE 754格式存储的。

sum.toFixed(2) 保留两位小数即可

# 用户输入的换行符在使用alert、console输出时看到的时换行效果,但是放在html网页中就不行了,所以我们需要将换行符转化为<br/>;

f12下面的换行符

JSON字符串

在文本域中也还是原效果,能换行

# layer的open方法设置宽高时一定得加上px单位

/* 全局的ajax访问,处理ajax清求时加上accessToken(可以拦截到所有的请求,包括href、资源请求、ajax请求) */
$.ajaxSetup({
    beforeSend: function(request) {
        if(arguments[1].type=="POST"){
        var accessToken= sessionStorage.getItem("accessToken");
        if(accessToken!=null){
            request.setRequestHeader("accessToken",accessToken);
        }
        console.log(arguments);
    }
});

/* 全局的ajax访问,处理ajax清求时加上accessToken(可以拦截到所有的请求,包括href、资源请求、ajax请求) */
$.ajaxSetup({
    beforeSend: function(request) {
        if(arguments[1].type=="POST"){
            var data = '';
            var accessToken= sessionStorage.getItem("accessToken");
            if(accessToken!=null){
                if(arguments[1].data==null || arguments[1].data==''){
                    data = data.concat('accessToken=' + accessToken);
                }else{
                    data = data.concat('&accessToken=' + accessToken);
                }
                arguments[1].data += data;//将序列化后的参数重写
            }    
        }else if(arguments[1].type=="GET"){
            var data = '';
            var accessToken= sessionStorage.getItem("accessToken");
            if(accessToken!=null){
                if(arguments[1].url.indexOf("?")!=-1){
                    data = data.concat('&accessToken=' + accessToken);
                }else{
                    data = data.concat('?accessToken=' + accessToken);
                }
                arguments[1].url += data;//将序列化后的参数重写
            }    
        }
    }
});

# a标签的href和onclick属性同时存在点击事件先触发

  • 同时存在两个定义的时候(onclick与href都定义了),如果想阻止href的动作,在onclick必须加上return false; 一般是这样写onclick="xxx();return false;".

    href一般是指向一个URL地址,也可以调用javascript ,如href="javascript:xxx();",文档中推荐这样写:<a href=" javascript:void(0)" onclick="xxx();">xx</a>,但是这种方法在复杂环境有时会产生奇怪的问题,尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。

javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。

javascript:;也可以

猜你喜欢

转载自www.cnblogs.com/syjp/p/10363533.html