2015-12-24 182 views
0

我讀了很多關於計算器的事情,但沒有幫助我:(如何檢測這個單選按鈕是否被選中?

我有這樣的HTML表格,通過Ajax請求加載:

<table class="table table-striped table-hover choix_annonce_table"> 
    <thead> 
     <tr> 
      <th>Sélection</th> 
      <th>Visuel</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td><input type="radio" value="45" name="idAnnonce"></td> 
      <td><img alt="Annonce 1" src=""></td> 
     </tr> 
     <tr> 
      <td><input type="radio" value="46" name="idAnnonce"></td> 
      <td><img alt="Annonce 2" src=""></td> 
     </tr>   
    </tbody> 
</table> 

我嘗試當單選按鈕被選中來檢測,但沒有以下問題的工作(在js文件包括在我的 「主」 頁):

$(document).ready(function() { 
    $("input[name=idAnnonce]").click(function(){ 
     alert("xx"); 
    }); 
}); 

OR

$(document).ready(function() { 
    $("input[name=idAnnonce]:radio").change(function() { 
     alert("xx"); 
    }); 
}); 

你有想法嗎?

編輯:當我加載JS直接到我的加載表與Ajax,它的工作原理。 爲什麼?

+0

的可能的複製【使用方法上的改變事件無線電?(http://stackoverflow.com/questions/13152927/how-to-use-radio -on-change-event) – robbmj

+0

閱讀選中的屬性? 'console.log(this.checked);' – epascarello

+1

[Find out if if radio button is checked with JQuery?](http://stackoverflow.com/questions/2272507/find-out-if-radio-button-使用jquery進行檢查) – Heroselohim

回答

1

如果你的javascript被直接加載到html文件中,那麼當html文件被加載和解析時,它會被一行執行。當javascript在一個單獨的文件中時,它需要被調用。你可以通過執行一個「onload」函數作爲你的body標籤語句的一部分。你的html的那部分缺失,所以目前還不清楚你的表是否真的在加載時加載任何東西。
您也可以在ajax加載結束時通過回調執行這些事件監視器。

3

這是因爲.click().change()方法,與其他所有事件處理一起,只爲觀看上的元素,這些事件是在事件被附着時間目前

爲了解決這個問題,而不是使用這樣的:

$('input[name=idAnnonce]').change(function() { 
    // ... 
}); 

使用這樣的事情,而不是:

/* Use 'body' or any element that will contain the form */ 
$('body').on('change', 'input[name=idAnnonce]', function() { 
    // ... 
}); 

這將觀看傳遞到身體的點擊事件,只調用函數爲那些匹配選擇器。

+0

好的答案,但是您應該使用radio上的'change'事件和複選框輸入,以便在通過鍵盤更改選擇時還會觸發事件。 –

+0

@RoryMcCrossan我補充說。謝謝! –

+0

不,它不工作:( 我已經將您的方法添加到我的全局js文件中,並且沒有任何情況發生 – bahamut100

1

當通過ajax加載表時,您需要通過ajax調用來引入javascript。這意味着進來的表還應該包含引用表的JavaScript。父頁面上的DOM不知道表,所以父頁面上的JavaScript不會對新內容起作用。

0
$(document).ready(function() { 
    $('input[type=radio][name=idAnnounce]').change(function(evt) { 
    console.log(evt.target.value) 
    }); 
}); 

您使用的選擇器是錯誤的。

上面的代碼應該幫助

歡呼

相關問題