先看代码:
代码
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>
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事件不激发了?
解决的办法有两个:
- 在SharePoint的母板页中的最上面加上如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- 修改JavaScript代码,如下:
代码原因大家仔细想一想,为什么?function test() {
var s = document.getElementById("select1");
s.onchange = show;
}
function show() {
var s = window.event.srcElement;
alert(s.value);
}