<body onclick="alert(event.srcElement.tagName)">event.srcElement就是事件的源对象。

解决方案 »

  1.   

    不行呀,比如说我先选择了一个多选框中的一项,然后再单击一个按钮,此时调用alert(event.srcElement.tagName)",结果其值仍为select而不是button
    我的代码如下:
    <html>
    <body>
    <form name=form1>
    <select name="sel" multiple size=10 onblur="cancel()">
    <option value="sel1">sel1</option>
    <option value="sel2">sel2</option>
    <option value="sel3">sel3</option>
    </select>
    <input name=submit type=submit value="submit">
    </form>
    <script language="javascript">
    function cancel()
    {
    alert(event.srcElement.tagName);
             //我的目的是想再单击提交按钮时正常提交,单击页面其他地方取消所有的选择
    for(i=0;i<document.form1.sel.length;i++)
    {
    document.form1.sel[i].selected=false;
    }
    }
    </script>
    </body>
    </html>
      

  2.   

    我想了一下,onestab(┼─)兄说的是对的,因为我的事件是blur,所以事件对象是select,但要实现我所说的情况,该怎么办呢
      

  3.   

    你这样返回的当然是select对象了,你使用的是onblur事件,这是当失去焦点所触发的事件,当你按下按钮时就是sel失去焦点的时候,调用cencel()函数的是select对象,当然传回的是select对象,我觉得你这样做是不太好的,你有没有想过:当我的鼠标点了其它空白的地方后就需要把我先前所做的选择就取消了而要重新选择,这不是非常的麻烦吗(只是我的个人感觉布局)。你可以这样:<html>
    <body>
    <form name=form1>
    <select name="sel" multiple size=10>
    <option value="sel1">sel1</option>
    <option value="sel2">sel2</option>
    <option value="sel3">sel3</option>
    </select>
    <input name=submit type=submit value="submit">
    </form>
    <script language="javascript">
    function formSubmit()
    {
    alert(event.srcElement.tagName);
    for(i=0;i<document.form1.sel.length;i++)
    {
    if(document.form1.sel[i].selected) return true;
    }
             return false;
    }
    </script>
    </body>
    </html>
    <script>
    document.form1.onsubmit=formSubmit;
    </script>
      

  4.   

    <form name=form1  onclick="cancel()">
    <select name="sel" multiple size=10>
    <option value="sel1">sel1</option>
    <option value="sel2">sel2</option>
    <option value="sel3">sel3</option>
    </select>
    <p>我的目的是想再单击提交按钮时正常提交,单击页面其他地方取消所有的选择</p>
    <input name=submit type=submit value="submit">
    </form>
    <script language="javascript">
    function cancel()
    {
    if(!form1.sel.contains(event.srcElement))
    document.form1.sel.selectedIndex=-1;
    }
    </script>
      

  5.   

    function cancel()
    {
    if(event.srcElement.tagName!="SUBMIT" && !form1.sel.contains(event.srcElement))
    document.form1.sel.selectedIndex=-1;
    }