Симуляция текстовое поле Нажмите, чтобы получить фокус - PullRequest
0 голосов
/ 16 декабря 2010

Я пытаюсь использовать следующий код для запуска события click в текстовом поле при нажатии кнопки, так как функция фокусировки () не работает в 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
  }
}

Этот код работает нормально, если элемент имеетНапечатайте флажок, но не текстовое поле, есть ли что-то, что мне нужно добавить?

1 Ответ

0 голосов
/ 16 декабря 2010

Это код для фокуса

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, текстовое поле фильтра все еще находится в фокусе, предотвращая ввод нового пользователя. Фильтрует, если снова не нажать на текстовое поле вручную

P.S. Извините, если это сообщение рассматривается как ответ, но не может обновить этот вопрос с соответствующим кодом с отступом. Спасибо

...