Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模拟文本框单击以获得焦点_Javascript_Click_Simulate - Fatal编程技术网

Javascript 模拟文本框单击以获得焦点

Javascript 模拟文本框单击以获得焦点,javascript,click,simulate,Javascript,Click,Simulate,我正在尝试以下代码在单击按钮时在文本框上触发click事件,因为focus()函数在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 cance

我正在尝试以下代码在单击按钮时在文本框上触发click事件,因为focus()函数在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
  }
}

如果元素的类型为checkbox而不是textbox,则此代码可以正常工作,是否需要添加任何内容?

这是焦点代码

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;
    }
函数响应(发送方,参数){
if(args.get_eventArgument().indexOf(“过滤器”)!=-1){
var grid=document.getElementById(“”);
var label=$(网格).children(“表”).children(“tbody”).children(“rgRow”).children(“td:has(span)”).children(“span”)[0];
如果(标签!=null){
label.focus();
}
否则{
var noRecTemp=$(网格).children(“表格”).children(“tbody”).children(“tr.rgNoRecords”).children(“td:has(div)”).children(“div”);
noRecTemp.focus();
}
}
如果(后进)
postInProgress=false;
}
真正的情况是,我在Telerik RadGrid中将一些文本框设置为过滤器,并且没有过滤器图标,但是当用户发布过滤器并且请求在IE8中完成时,过滤器文本框仍然具有焦点,防止用户输入新过滤器,除非再次手动单击文本框


另外,如果这篇文章被视为答案,很抱歉,但无法使用正确的缩进代码更新此问题。谢谢

你能展示你声称focus()在IE8中不起作用的代码吗?据我所知,createEvent在IE中不受支持。请阅读此处:文本框支持焦点刚刚好:在IE、Chrome和Firefox中工作良好,因此问题在于代码中的其他内容。请随意发布,我们将进行查看。