2013-02-14 2 views
0

Я пытаюсь использовать jquery, чтобы определить, проверено ли другое текстовое поле в той же группе. В приведенном ниже коде показано, как я пытаюсь получить имя группы, когда установлен флажок в расширенном поле, и используйте его, чтобы проверить, установлен ли соответствующий флажок Basic. Проблема в том, что «basicTrue» всегда присваивается «undefined», независимо от состояния базового флажка.Сложность вставки переменной в атрибут атрибута jquery

<div id="boxes"> 
<input style="text-align:center;" type="checkbox" name="group1" value="Basic"> 
<input style="text-align:center;" type="checkbox" name="group1" value="Advanced"> 
<input style="text-align:center;" type="checkbox" name="group2" value="Basic"> 
<input style="text-align:center;" type="checkbox" name="group2" value="Advanced"> 
</div> 

$("#boxes").contents().find(":checkbox").bind('change', function(){   
val = this.checked; 
var $obj = $(this);  
if($obj.val()=="Advanced"){ 
var group = $obj.attr("name"); 
var basicTrue = $('input[name=group][value="Basic"]').prop("checked"); 
if(basicTrue) 
{ 
    //Do stuff 
} 
else 
{ 
    $obj.attr('checked', false); 
} 
} 

Этот код является доказательством концепции Я использовал, чтобы доказать, что код отформатирован таким образом работает, он делает вернуть статус флажком «Basic» в «group1».

var basicTrue = $('input[name="group1"][value="Basic"]').prop("checked"); 

Я знаю, что переменной «группа» присваивается правильное имя: например, group1. Есть ли причина, почему использование этой переменной в коде не будет работать?

ответ

1

Те переменные, и они должны быть concentenated в строку в селекторе, например, так:

$('input[name="' + group + '"][value="Basic"]').prop("checked"); 

Упрощенная версия:

$("#boxes input[type='checkbox']").on('change', function(){   
    var bT = $('input[name="'+ this.name +'"][value="Basic"]').prop("checked"); 

    if(this.value == "Advanced" && bT) { 
     //Do stuff 
    } else { 
     $(this).prop('checked', false); 
    } 
}); 
+0

Спасибо, поймали его после написания вопроса что переменная не принадлежала строке. Однако добавленные котировки для этого не нужны. – Rorrik

 Смежные вопросы

  • Нет связанных вопросов^_^