2010-12-16 67 views
0

我想下面的代碼火點擊文本框的事件,而上一個按鈕,點擊爲重點()函數沒有在IE8工作模擬文本框點擊獲得焦點

function simulateClick(elm) { 
    var evt = document.createEvent("MouseEvents"); 
    evt.initMouseEvent("click", true, true, window, 
     0, 0, 0, 0, 0, false, false, false, false, 0, null); 
    var canceled = !elm.dispatchEvent(evt); 
    if(canceled) { 
    // A handler called preventDefault 
    // uh-oh, did some XSS hack your site? 
    } else { 
    // None of the handlers called preventDefault 
    // do stuff 
    } 
} 

此代碼工作正常,如果該元素是複選框類型但不是文本框,有什麼我可能需要添加?

+0

你可以顯示代碼焦點()你聲稱不工作在IE8?據我所知,createEvent在IE中不受支持。有一個在這裏閱讀:http://www.howtocreate.co.uk/tutorials/javascript/domevents – mplungjan 2010-12-16 10:10:31

+0

文本框支持重點就好了:http://jsfiddle.net/J9qQj/在IE,Chrome和Firefox中正常工作,所以問題是代碼中的其他內容可隨意發佈,我們將會看一看。 – 2010-12-16 10:22:20

回答

0

這是焦點代碼

function ResponseEnd(sender, args) { 
     if (args.get_eventArgument().indexOf("Filter") != -1) { 
      var grid = document.getElementById("<%= radGridEnquiries.ClientID %>"); 
      var label = $(grid).children("table").children("tbody").children(".rgRow").children("td:has(span)").children("span")[0]; 
      if (label != null) { 
       label.focus(); 
      } 
      else { 
       var noRecTemp = $(grid).children("table").children("tbody").children("tr.rgNoRecords").children("td:has(div)").children("div"); 
       noRecTemp.focus(); 
      } 
     } 

     if (postInProgress) 
      postInProgress = false; 
    } 

真正的情況是,我有一些文本框在Telerik的radgrid控件設置過濾器和沒有過濾器的圖標,但是當用戶發一個過濾器和請求完成IE8的過濾器文本框仍然有焦點,阻止用戶輸入新的過濾器,除非再次手動點擊文本框

PS對不起,如果這篇文章被視爲答案,但不能用適當的縮進代碼更新這個問題。謝謝