江湖路
专注AJAX和Moss
posts - 20,comments - 23,trackbacks - 0

先看代码:

代码
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <title></title>
 5 
 6     <script type="text/javascript">
 7         function test() {
 8             var s = document.getElementById("select1");
 9             s.setAttribute("onchange""show('"+s.value+"');");      
10         }
11         function show(m) {
12             alert(m);
13         }
14     </script>
15 
16 </head>
17 <body onload="test()">
18     <select id="select1">
19         <option value="a">a</option>
20         <option value="b">b</option>
21         <option value="c">c</option>
22     </select>
23 </body>
24 </html>

 

一个普通的ASPX的页面,运行没有任何问题,但是放到WebPart中,你试试,change事件不激发了?

解决的办法有两个:

  1. 在SharePoint的母板页中的最上面加上如下:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

     

  2. 修改JavaScript代码,如下:
    代码
            function test() {
                
    var s = document.getElementById("select1");
                s.onchange 
    = show;
            }
            
    function show() {
                
    var s = window.event.srcElement;
           
                alert(s.value);
            }

     

    原因大家仔细想一想,为什么?

 

posted on 2009-12-04 10:27 wengnet 阅读(1154) 评论(2) 编辑 收藏

FeedBack:
2009-12-04 12:10 | czjone      
你的问题是个很早就有人说过的了~~~~DOM 都还没加载~~~~你能操作属性吗?
 回复 引用 查看   
2009-12-04 22:03 | virus      
Dom还没有加载完毕呢
你用jquery的ready就没有问题乐

 回复 引用 查看