2012.05.15

今天接着昨天的内容看,简单点记录吧,今天还是有收获的,现在给自己定下了一些规则,对一些有收获的知识点,用波浪号标记,对一些不知道的、不肯定的,且需要验证的地方,用星号表示,如果看的途中有些想法觉得需要验证,就用笔记下来,并标上星号(暂时这些笔记都直接写在书上,貌似不太爱惜书本啊··)

有收获的知识点:

1. 文本框的keypress事件仅对那些能表示文本框内出现的字符的按键才触发。keydown事件则是不管哪个按键按下都会触发。

(验证后确实如此,ctrl,alt,方向键都不触发keypress事件; 但退格键可以触发keypress,因为该键可改变文本框内出现的字符)

2.空字符串和数字比较时,被认为是0,或被转换为0.验证如下:

View Code
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的宽度)

View Code
<select id="ddl" style="50px;">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>

  表现:

  当有size属性时,select标签会被渲染成列表框。

  代码:

View Code
<select id="ddl" size="3" style="50px;">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</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

  代码:

View Code
 1 <input type="text" onpaste="return paste();"  onkeypress="return myPaste(event);">
 2 
 3 <script type="text/javascript">
 4 function paste(){
 5     alert("paste");
 6     return false;
 7     
 8 }
 9 
10 function myPaste(ev){
11     var ev = ev || window.event;
12     if(ev.ctrlKey && ev.charCode=="118"){
13         alert("my paste");
14         return false;
15     }
16 }
17 </script>

  注意:在firefox下用event对象的属性获取当前按的是什么键时,不能用keyCode,而应该用charCode,因为在使用组合键时(CTRL/ALT等和其他键同时按下),keyCode的值是0。 而在IE8下,使用CTRL和ALT的组合键时,keypress事件都不执行。

  今天的记录就到这里。这次没怎么注意排版,以后写多了会慢慢注意。

                                                                    --2012.5.15

原文地址:https://www.cnblogs.com/bee0060/p/2502677.html