2015-11-03 3 views
1

Я последовал этому примеру, чтобы захватить OnChange() JQuery событие для группы переключателей: JQuery $(#radioButton).change(...) not firing during de-selectionJQuery Radio Button OnChange не работает

Но в моем случае, решение, данное в этом примере не работает. Я следующее генерироваться из моего JSP:

<input id="object.reportEntity.reportEntityIsPrime1" name="object.reportEntity.reportEntityIsPrime" type="radio" value="Y_YES" checked="checked"/>Prime        

<input id="object.reportEntity.reportEntityIsPrime2" name="object.reportEntity.reportEntityIsPrime" type="radio" value="N_NO"/>Not Prime 

JS:

$(document).ready(function() {  

    // Display Alert on Radio Change  
    $('input[name=object.reportEntity.reportEntityIsPrime]:radio').change(function() { 
     alert('Radio Button clicked'); 
    }); 
} 

Оповещение не отображаемая. Кроме того, есть эта ошибка:

Синтаксическая ошибка, непризнанный выражение «вход»

+0

Это ошибка JSP или ошибка JS? –

+0

Ошибка JavaScript (JS). Я подозреваю, что это из-за точек, используемых в названии. –

+0

Почему у вас такое длинное имя? Я знаю, что это C# –

ответ

1

Используйте кавычки для вашего имени, как это:

$('input[name="object.reportEntity.reportEntityIsPrime"]:radio') 
4

Вы должны делегировать события.

Event delegation allows us to attach a single event listener, to a parent element, that will fire for all descendants matching a selector, whether those descendants exist now or are added in the future.

Кроме того, вам нужно добавить " в вашем селекторе, например, [name=""] Обратите внимание на следующее ...

$('body').on('change', 'input[name="object.reportEntity.reportEntityIsPrime"]:radio', function() { 
    alert('Radio Button clicked'); 
}); 
  • сторона примечание: вам не хватает ); на конце вашего ready функции

JSFiddle Link - рабочий пример

Также, обязательно просмотрите jQuery Understanding Event Delegation docs для получения дополнительной информации

1

Quote имя атрибута в строке селектора.

$(document).ready(function() {  

      // Display Alert on Radio Change  
    $('input[name="object.reportEntity.reportEntityIsPrime"]:radio').change(function() { 
       alert('Radio Button clicked'); 
      }); 

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