2016-04-25 4 views
0

Я пытаюсь подключить обработчик события изменения к экземпляру kendoNumercTextBox. я могу получить экземпляр управления kendoNumercTextBox используя свой идентификатор, однако Im не в состоянии получить экземпляр, используя имя классаНе удалось найти kendoNumericTextBox по имени класса

здесь код http://dojo.telerik.com/emIWa/11

ПРИМЕЧАНИЕ

  • I Do НЕ хотите присоединять обработчик событий во время создания объекта управления . Я хочу получить существующий экземпляр, а затем присоединить обработчик события .
  • Также я на самом деле с помощью кендо ASP.NET MVC, однако додзё не позволяет мне писать cshtml так я использую кендо UI для демонстрационной цели выше. Но я думаю, что конечный результат будет таким же.
    NumericTextBox создается, как показано ниже в cshtml

    @(Html.Kendo().NumericTextBoxFor(x =>x.numerictextbox).HtmlAttributes(new {@class = "MyClass"})) 
    

ответ

0

Вы должны использовать более конкретный селектор JQuery. Это, например, получит правильный элемент, который является один с атрибутом данных ролей:

var numerictextboxByClassName = $(".MyClass [data-role]") 

Если вы используете инструменты разработчика в вашем браузере, чтобы проверить текстовое поле, вы увидите, что «MyClass» является на нескольких элементах, которые составляют виджет, следовательно, необходимо быть более конкретным. Также стоит отметить, что обработчик будет привязан только к первому экземпляру, найденному с помощью селектора, поэтому этот метод не может использоваться для одновременного прикрепления обработчика к нескольким таким элементам управления.

+0

Спасибо, Что сработало. Есть ли способ проверить, был ли элемент управления, вызвавший событие изменения, определенным именем класса? как я делаю это в обработчике событий изменений как «function (e) {$ (e.sender.elements [0]). hasClass ('SomeClass')} ' – LP13

+0

' function (e) {$ (e.sender. элементы [0]). hasClass ('SomeClass')} ' – LP13