Включить / отключить определенный динамически добавленный ввод формы - PullRequest
1 голос
/ 22 сентября 2011

Я создаю HTML-форму, которая берет некоторые из ее параметров из базы данных (php + mysql)

В php я создаю checkbox вход с полем выбора рядом

Я назвал флажок houseAppsSelected[] и выделил customCategories[], поэтому я получу значения в виде массива.

Я добавляю весь HTML-код в переменную с именем $options, и я повторяю это позже.

while ($row=mysql_fetch_array($result)) { 
    $cat_id=$row["category_id"]; 
    $cat_name=$row["category_name"]; 
    $options.="<INPUT type=\"checkbox\" name=\"houseAppsSelected[]\" VALUE=\"$cat_id\">".$cat_name." ---> ";


    $custom_sql="SELECT custom_cat_id, cat_name FROM custom_categories WHERE house_app='$cat_id'"; 
    $custom_result=mysql_query($custom_sql);

    $options.="<SELECT name=\"customCategories[]\">";
    $options.="<OPTION value=\"0\"> Choose Category </option>";

    while ($custom_row=mysql_fetch_array($custom_result)) {
        $custom_id = $custom_row['custom_cat_id'];
        $custom_name = $custom_row['cat_name'];
        $options.="<OPTION value=\"$custom_id\">".$custom_name."</option>";
    }

    $options.="</SELECT> <br /> <br />";
}

Я хочу, чтобы флажок управлял включением или отключением поля выбора.

Я нашел эту статью , что делает его простым, но если все поля выбора имеют одно и то же имя, все они будут отключены.

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

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

Вы можете использовать свойство nextSibling для поиска выбора.

function chkboxClick(chkbox) {
    chkbox.nextSibling.nextSibling.disabled = !chkbox.checked;
}

Добавьте обработчик кликов следующим образом:

<INPUT type="checkbox" onclick="chkboxClick(this)" ... /> 

Демо здесь: http://jsfiddle.net/gilly3/vAK7N/

1 голос
/ 22 сентября 2011

Вы можете присвоить каждому тегу уникальное значение «id», которое не зависит от «name».Затем вы можете использовать

var elem = document.getElementById(something);

для доступа к ним по этому уникальному значению.

То, как ваш php-код формирует уникальные значения, зависит от того, что вам нужно, именно.Это может быть что угодно.

...