2015-05-01 2 views
0

В настоящее время я работаю с набором текстовых полей в сетке, которые представляют дни недели. Существует также выпадающий список (с его выбранным индексом), который также показывает даты недели. Также есть текстовая область, которая представляет конкретные комментарии для каждого дня выбранной недели.OnBlur после вызова метода OnFocus

При фокусировке с помощью щелчков или TAB моя функция Javascript вызывает метод боковой линии (C#) для выбранного метода изменения индекса данных. Каждый день возвращает свой индекс обратно функции, затем запускает метод SelectedIndexChanged.

Этот способ, когда я нажимаю на недельный день, могу показать комментарии и изменить дату падения, вместо того, чтобы прибегать к использованию выпадающего списка.

Я сделал это, добавляя атрибуты, как так:

gridTextBox.Attributes.Add("onfocus", "changeSelectedDayComments(" + index.ToString() + ")"); 

Все, что сказал, этот вопрос я столкнулся, когда я пытаюсь ввести текст в ячейке, происходит мерцание и удаляет мой текст. Есть ли способ добавления атрибута onBlur после использования onFocus для вызова метода, используя только Javascript? Заранее спасибо

+0

Зачем вам нужно звонить по телефону? – IvanJ

+0

Настроен, так как onFocus используется для вызова функции, тогда onBlur позволит фокусу снимать с текущего текстового поля сетки при переходе к следующему текстовому полю сфокусированной сетки. –

+0

Проблема была в самой вызываемой функции. Случайно используется datelist.onChange, а не dateList.onFocus, поэтому каждый раз, когда я переключал текстовые поля сетки и пытался изменить текст, я каждый раз вызывал функцию, таким образом, «мерцание». Сейчас работает отлично. Спасибо IvanJ –

ответ

0

Мне пришлось пересмотреть используемую функцию Javascript.

<script language="javascript" type="text/javascript"> 
function changeSelectedDayComments(index) { 
    //cast as drop down and set the index 
    index = index - 5; //where the first day is listed in grid/match date drop down 
    var dateList = document.getElementById("Dropdown_CommentsDateSelection"); 
    dateList.selectedIndex = index; 
    //call back to event to fire upon change 
    setTimeout(function() { 
     dateList.onfocus(function() { 
      Dropdown_CommentsDateSelection_SelectedIndexChanged() 
     }); 
    }, 1); 
} 
</script> 

Как уже упоминалось, датаList.onChange, а не датаList.onFocus была проблемой.

Смежные вопросы