Образец
www.blh.ru/orders/kadastr... 1. есть форма с radio buttons и labels.
2. есть var set (переменная с набором данных для json).
Я предполагаю следующий алгоритм (возможно, лучше посмотреть образец по вышеприведенной ссылке, т.к. я не программист и мне сложно описать):
когда пользователь кликает на input с определенным name, то скрипт ищет в var set ключи и значения, аналогичные input name (например, в var set есть "attribute_pa_region: moskva", и на странице есть инпуты с value="moskva" и name="attribute_pa_region")
если он находит его, то сбрасывает и блокирует для выделения те input (в предыдущих и последующих fieldset), у которых name не совпадает с набором в var set.
Подробнее
Первый элемент ( attribute_pa_tip-ob-ekta ) не ищет, т.к. в наборе в var set не присутствует.
Если второй элемент ( attribute_pa_region ) помечен, то ищет. attribute_pa_region присутствует во всех вложенных элементах, кроме 2 последних.
radio buttons могут быть помечены как вручную, так и по умолчанию.
Если для отмеченного radio button элемент в следующем fieldset (attribute_pa_gotovnost) не совпадает с набором для отмеченного, то выделить в следующем fieldset первый возможный вариант, а недопустимым добавить css класс и запретить возможность отметить.
Также проверить не только последующий, но и вообще все последующие и предыдущие. Если в var set нет таких вариантов, то их тоже скрыть.
Учтите, что параметры name от страницы к странице могут отличаться, поэтому Ваше решение не должно быть завязано на параметры name, указанные в html коде, приведенном здесь
Если текст был непонятен (а так, скорее всего, и есть), то посмотрите пример по ссылке. Мой html + var set + Ваше решение = должны дать приблизительно то, что указано по ссылке выше.
<table class="variations" cellspacing="0">
<tbody>
<tr>
<td class="label">
<label for="pa_tip-ob-ekta">Тип объекта</label>
</td>
<td class="value">
<fieldset>
<input value="zhiloe" id="pa_tip-ob-ekta2" name="attribute_pa_tip-ob-ekta" type="radio">
<label for="pa_tip-ob-ekta2">Жилое</label>
<input value="zemel-ny-j-uchastok" id="pa_tip-ob-ekta4" name="attribute_pa_tip-ob-ekta" type="radio">
<label for="pa_tip-ob-ekta4">Земельный участок</label>
<input value="nezhiloe" id="pa_tip-ob-ekta6" name="attribute_pa_tip-ob-ekta" type="radio">
<label for="pa_tip-ob-ekta6">Нежилое</label>
</fieldset>
</td>
</tr>
<tr>
<td class="label">
<label for="pa_region">Регион</label>
</td>
<td class="value">
<fieldset>
<input value="moskva" checked="checked" id="pa_region11" name="attribute_pa_region" type="radio">
<label for="pa_region11">Москва</label>
<input value="moskovskaya-oblast" id="pa_region13" name="attribute_pa_region" type="radio">
<label for="pa_region13">Московская область</label>
<input value="rossiya" id="pa_region15" name="attribute_pa_region" type="radio">
<label for="pa_region15">Россия</label>
</fieldset>
</td>
</tr>
<tr>
<td class="label">
<label for="pa_gotovnost">Готовность</label>
</td>
<td class="value">
<fieldset>
<input value="1" id="pa_gotovnost20" name="attribute_pa_gotovnost" type="radio">
<label for="pa_gotovnost20">1</label>
<input value="5" id="pa_gotovnost22" name="attribute_pa_gotovnost" type="radio">
<label for="pa_gotovnost22">5</label>
<input value="7" checked="checked" id="pa_gotovnost24" name="attribute_pa_gotovnost" type="radio">
<label for="pa_gotovnost24">7</label>
</fieldset>
</td>
</tr>
<tr>
<td class="label">
<label for="pa_versiya">Версия</label>
</td>
<td class="value">
<fieldset>
<input value="zaverennaya" checked="checked" id="pa_versiya29" name="attribute_pa_versiya" type="radio">
<label for="pa_versiya29">Заверенная</label>
<input value="e-lektronnaya" id="pa_versiya31" name="attribute_pa_versiya" type="radio">
<label for="pa_versiya31">Электронная</label>
</fieldset>
</td>
</tr>
</tbody>
</table>
var set = {
post_120: {attribute_pa_region: moskva, attribute_pa_gotovnost: 7, attribute_pa_versiya: zaverennaya},
post_129: {attribute_pa_region: moskovskaya-oblast, attribute_pa_gotovnost: 7, attribute_pa_versiya: zaverennaya},
post_121: {attribute_pa_region: moskva, attribute_pa_gotovnost: 1, attribute_pa_versiya: zaverennaya},
post_123: {attribute_pa_region: moskovskaya-oblast, attribute_pa_gotovnost: 1, attribute_pa_versiya: zaverennaya},
post_125: {attribute_pa_region: rossiya, attribute_pa_gotovnost: 5, attribute_pa_versiya: zaverennaya},
post_130: {attribute_pa_gotovnost: 5, attribute_pa_versiya: e-lektronnaya},
post_131: {attribute_pa_gotovnost: 1, attribute_pa_versiya: e-lektronnaya}
};
Формирование переменной set может быть измененено, если Вам будет удобнее.