2013-02-28 5 views
0

У меня есть часть кода jQuery, которую я использую, чтобы проверить, не установлен флажок. Если нет, он выдает событие. Вот оно:jQuery checkbox styling issue

 

$('#Button').click(function() { 
     if(!$('input[@name=\"image_id\"]:checked').val()){ 
      //Do Something 
      return false; 
      } 
}); 
 

Он отлично работает, но я решил стилизовать флажок по умолчанию с jQuery Checkbox плагин.

Теперь Heres проблема, это то, что выход после укладки:

<input type="radio" name="answer_id" value="37" style="position: absolute; z-index: -1; visibility: hidden;">` 
<span class="jquery-safari-checkbox jquery-safari-checkbox-checked"><span class="mark"><img src="empty.png"></span></span> 

, таким образом, оставив меня без пути, чтобы увидеть, если вход проверяется. Любые идеи о том, что я могу сделать (если есть), или я просто вернусь к старым флажкам?

+0

@name не был в JQuery, начиная с версии 1.2! Вы используете действительно старую версию jQuery? – epascarello

+0

В чем проблема? Установлен ли плагин не в исходном флажке? Большинство плагинов моделирования просто скрывают исходный флажок, но при этом сохраняют свое состояние, поэтому вам не нужно играть в игры с определением его значения или отправкой его формой. –

ответ

1

Вам не нужно делать ничего особенного. Исходный флажок все еще существует и сохраняет свое состояние. Когда вы нажмете флажок fancy, плагин обновит скрытый флажок, чтобы он соответствовал текущему состоянию.

Вы также можете обновить свой код, если используете последний jQuery. Ваш код довольно устаревшее:

$('#Button').click(function() { 
    if (!$('input[name=image_id]').prop('checked')) { 
     //Do something 
     return false; 
    } 
}); 

Демо: http://jsfiddle.net/k2d6E/

+0

Да, мой код был довольно старым и устарел от внешнего вида вещей. Спасибо за это! – Ricki

1

Любопытное грязный, на мой взгляд, чтобы сделать это так, но:

if($(".jquery-safari-checkbox").hasClass("jquery-safari-checkbox-checked")){ 
    //Do something 
    return false; 
}