2010-10-27 2 views
7

Я хочу проверить, установлен ли флажок или нет с помощью jquery. Я хочу проверить это на событии onclick checkbox.проверить, установлен ли флажок или нет с помощью jquery

<input type="checkbox" onclick="javascript:check_action();" id="Public(Web)" checked="checked" value="anyone" name="data[anyone]"> 

Возможно ли это? Как?

Спасибо.

+1

Не используйте '' JavaScript: в случае атрибутов обработчика. Это неправильно и работает только потому, что это действительный синтаксис JavaScript. –

+0

id = "Public (Web)" не является допустимым именем. Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв, цифр ([0-9]), дефис («-»), подчеркивание («_») , colons (":") и периоды ("."). –

+1

@FutureKode: В HTML 4 да. В HTML 5 нет. Но в обозримом будущем вы абсолютно правы –

ответ

8

Во-первых, не используйте javascript: в атрибуты обработчика событий. Это неправильно и работает только потому, что это действительный синтаксис JavaScript. Во-вторых, ваш id недействителен. Скобки не допускаются в атрибуте id (по крайней мере, в HTML 4, HTML 5 отменяет это ограничение). В-третьих, если вы используете jQuery, вероятно, имеет смысл использовать свой метод click() для обработки события click, хотя имейте в виду, что его изменение будет означать, что если пользователь нажмет на флажок перед загрузкой документа, то ваш скрипт не справится с этим.

<input type="checkbox" id="Public_Web" checked value="anyone" 
    name="data[anyone]"> 

$(document).ready(function() { 
    $("#Public_Web").click(function() { 
     if (this.checked) { 
      alert("Checked!"); 
     } 
    }); 
}); 
+0

Эй, это сработало. Спасибо за этот хороший. Спасибо всем, кто ответил за это. – gautamlakum

4

Вы можете сделать, как этот

$('#checkbox_id').click(function(){ 
    alert(this.checked); 
}); 

Или с помощью is() метода:

$('#checkbox_id').click(function(){ 
    if ($(this).is(':checked')){ 
    alert('Checked'); 
    } 
    else{ 
    alert('Not Checked'); 
    } 
}); 

Если вы хотите сделать это для всех флажком внутри формы, вы можете использовать селектор :checkbox фильтра, как это :

$('#form_id :checkbox').click(function(){ 
    alert(this.checked); 
}); 

Обязательно заверните свой код в готовности обработчик:

$(function(){ 
    // code.... 
}); 
+0

<тип скрипта = "текст/JavaScript"> \t $ ('# Public (Web)') нажмите (функция() { \t \t если ($ (это) .а (': проверено')) { \t \t \t оповещения ('Проверено'); \t \t} еще { \t \t \t оповещения ('Не проверено'); \t \t} \t}); Я пробовал это. но это не сработало. – gautamlakum

1

Во-первых, привяжите событие в тегах скрипта, а не в строке. Это намного проще, и ваш HTML намного читабельнее. Затем вы можете использовать селектор jQuery :checked, чтобы определить, установлен ли флажок. Тогда вы можете использовать атрибут checked элемента.

$(document).ready(function(){ 
    $('#Public(Web)').click(function(){ 
     if (this.checked) { 
      // do your code here 
     } 
    }); 
}); 
+1

Серьезно, нет. Для проверки того, установлен ли один флажок, '$ (this) .is (': checked')' просто безумный. 'this.checked' лучше во всех мыслимых смыслах. –

+0

Да. Простите меня, боги JS, потому что я согрешил ... – lonesomeday

+0

Сарказм, я предполагаю? '$ (this) .is (': checked')' является моим домашним животным, как признаком того, что он представляет. Мне нужно уточнить? –

0

Вот еще один пример, обратите внимание, вместо того, чтобы использовать событие OnClick в самом элементе я предпочел бы использовать слушатель, но удалить скобки из Ид, Это даст вам трудное время в некоторых браузерах.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html><head> 
<input type="checkbox" id="PublicWeb" checked="checked" value="anyone" name="data[anyone]" /> 
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.min.js'></script> 
<script> 
$(document).ready(function(){ 
    $('#PublicWeb').click(function(){ 
     if($(this).is(':checked')){ 
      alert("its checked alright"); 
     } 
    }); 
}); 
</script> 
</head><body></body></html> 
8

Вы также можете использовать этот

if($("#checkbox_id").is(':checked')) 
2

Есть несколько вариантов там нравится ....

1. if($("#ans").is('checked')) 
2. if($("#ans:checked")) 
3. if($('input:checkbox:checked')) 
1

Попробуйте:

if(!$('#elementid').is(':checked')){ 
    alert('Not checked'); 
}else{ 
    alert('checked'); 
} 
1

Вы можете сделать это, используя is() метод:

$('##Public_Web').click(function(){ 
    if ($(this).is(':checked')){ 
    alert('Checked'); 
    } 
    else{ 
    alert('Not Checked'); 
    } 
}); 

Если вы хотите сделать это для всех флажком внутри формы, вы можете использовать :checkbox селектор фильтра:

$('#form_id :checkbox').click(function(){ 
    alert(this.checked); 
}); 

Убедитесь, чтобы обернуть свой код в документе готовый обработчик:

$(document).ready(function() { 
     // code.... 
    }); 
Смежные вопросы