0

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
  }
}

要素のタイプがチェックボックスでテキストボックスではない場合、このコードは正常に機能します。追加する必要があるものはありますか?

4

1 に答える 1

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この投稿が回答と見なされている場合は申し訳ありませんが、適切なインデントされたコードでこの質問を更新できませんでした。ありがとう

于 2010-12-16T10:19:05.897 に答える