今天接着昨天的内容看,简单点记录吧,今天还是有收获的,现在给自己定下了一些规则,对一些有收获的知识点,用波浪号标记,对一些不知道的、不肯定的,且需要验证的地方,用星号表示,如果看的途中有些想法觉得需要验证,就用笔记下来,并标上星号(暂时这些笔记都直接写在书上,貌似不太爱惜书本啊··)
有收获的知识点:
1. 文本框的keypress事件仅对那些能表示文本框内出现的字符的按键才触发。keydown事件则是不管哪个按键按下都会触发。
(验证后确实如此,ctrl,alt,方向键都不触发keypress事件; 但退格键可以触发keypress,因为该键可改变文本框内出现的字符)
2.空字符串和数字比较时,被认为是0,或被转换为0.验证如下:
1 1>"" // return true;2 0>"" // return false;3 0=="" // return true;4 -1>"" // return false;
3.select标签原来还有size和multiple属性,而option有index和selected属性。
对于select标签,书中的描述是:
当没有size属性时,select标签被渲染成组合框,也就是平常我们用的下拉列表。
代码:(为了好看 ,加了50px的宽度)
表现:
当有size属性时,select标签会被渲染成列表框。
代码:
表现:
这是列表框还是单选的,但是在加上multiple="multiple"属性后,就变为多选:
这是书中的内容,我发现size会控制默认显示的行数,我就想,那height呢?对列表框的高度是size优先还是height优先呢? 经过验证,是height优先,具体自己试验吧。
对于option标签的index和selected属性,用得比较少,平时用option时,都感觉心里没底,不知道到底有哪些属性,兼容性如何,现在心里总比之前有底些了。
4. 当字符串和数组对象相加时,数组对象会自动toString(),返回逗号分隔的字符串。
var arr = [];arr.push("a");arr.push("b");var str = "arr is:"+arr; // return arr is:a,b
5.IE中的onpaste事件
按书中描述,该事件仅IE兼容,在对文本框进行粘贴内容时被触发(如CTRL+V), 虽然兼容性不好,不过由于IE中,JS无法用onkeypress事件来阻止CTRL+V的按键组合,所以当需要限制文本框的输入时,这个事件也变得必不可少。
测试后确实如此,测试环境是:
Firefox 10.0.2
IE8
代码:
1 2 3
注意:在firefox下用event对象的属性获取当前按的是什么键时,不能用keyCode,而应该用charCode,因为在使用组合键时(CTRL/ALT等和其他键同时按下),keyCode的值是0。 而在IE8下,使用CTRL和ALT的组合键时,keypress事件都不执行。
今天的记录就到这里。这次没怎么注意排版,以后写多了会慢慢注意。
--2012.5.15