2017-08-09 64 views
1

我需要檢查的複選框狀態我在ASP.Net網站,但我不能讓JavaScript的工作:複選框的javascript不工作在asp.net

<li> 
    <a id="link" href="/ControlHoras">Control Horas</a> 
    <input onchange="favButton()" name="checkbox" type="checkbox" id="ControlHoras"/> 
</li> 
function favButton() { 
    if ($(this).is(":checked")) { 
    var id = this.id;   
    alert('checked'); 
    } else { 
    alert('unchecked'); 
    } 
}; 

回答

2

thisfavButton會該窗口,而不是點擊複選框,因爲您正在使用過時的onchange事件屬性。

您可以提高你的代碼,並通過附加使用一個不顯眼的事件處理程序事件處理程序,這樣迴避的問題:

$('#ControlHoras').change(function() { 
 
    if ($(this).is(":checked")) { 
 
    var id = this.id; 
 
    alert('checked'); 
 
    } else { 
 
    alert('unchecked'); 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li> 
 
    <a id="link" href="/ControlHoras">Control Horas</a> 
 
    <input name="checkbox" type="checkbox" id="ControlHoras" /> 
 
    </li> 
 
</ul>

+0

我也嘗試的onclick,我有這些複選框的25白衣不同的ID(索裏我的英語不好)我需要somethig比給我檢查的地位和他的ID –

+0

將共同'他們class'屬性所有和使用,而不是。 –

1
<li> 
    <a id="link" href="/ControlHoras">Control Horas</a> 
    <input onclick="favButton()" name="checkbox" type="checkbox" id="ControlHoras"/> 
</li> 
+0

已經嘗試onclick了。沒有工作 –

+0

1)onchange對複選框和收音機更好,因爲它適用於使用鍵盤瀏覽的用戶2)這對實際問題沒有任何影響,所以我不知道爲什麼這甚至是upvoted。 –

+0

@NicolasRocchia你可以看看https://jsfiddle.net/w6n4x4vd/它的工作 –

0

正確的方式來獲得主叫/發件人是通過event參數。事實上,如果Firefox沒有參數event,它會忽略事件。

function favButton(event) { 
    if ($(event.currentTarget).is(":checked")) { 
    var id = event.currentTarget.id;   
    alert('checked'); 
    } else { 
    alert('unchecked'); 
    } 
};