2010-12-16 70 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对不起,如果这篇文章被视为答案,但不能用适当的缩进代码更新这个问题。谢谢