2015-11-03 73 views
1

我跟着這個例子來捕獲的onChange()jQuery的事件單選按鈕組: JQuery $(#radioButton).change(...) not firing during de-selectionjQuery的單選按鈕平變化不工作

但在我的情況下,在該例子中給出的解決方案是行不通的。我有以下從我的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'); 
    }); 
} 

警報沒有被diplayed。此外,還有這樣的錯誤:

語法錯誤,無法識別的表達式「輸入」

+0

這是JSP錯誤還是JS錯誤? –

+0

JavaScript(JS)錯誤。我懷疑這是因爲名稱中使用的點。 –

+0

爲什麼你有這麼長的id名字?我認爲這是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

報價在您選擇的字符串中的name屬性。

$(document).ready(function() {  

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

    }