Нужна помощь с Javascript относительно радиокнопок - PullRequest
0 голосов
/ 06 июля 2011

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

Я хочу проверять и снимать флажок с каждого клика.

Примечание: я генерирую 20 радиокнопок динамически

Примите во внимание, что это радио-кнопка, которая запускается на сервере:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobutton.aspx

ОБНОВЛЕНИЕ: Это единственное событие, которое RadioButton (asp WebControl run at = "server") имеет:

    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
    var rad = (CheckBox)sender;
    if (rad.Checked)
    {

        rad.Checked = false;
    }
}

Я могу снять его после каждого поста назад ... но если толькопост не происходит, я не могу выбрать и отменить выбор .. Вот в чем проблема !!(

Ответы [ 3 ]

2 голосов
/ 06 июля 2011

Я думаю, что вы должны придерживаться стандартного использования RadioButtons, сказав это - используйте вместо этого CheckBoxes и снимите все флажки, если выбран другой ... так, когда флажок нажимается второйвремя произойдет стандартная отмена

0 голосов
/ 06 июля 2011

если я вас правильно понял, все, что вам нужно, это атрибут флага, сколько раз вы нажимали переключатель, и каждый раз, когда вы нажимаете радио, атрибут увеличивается на 1 и проверяет атрибут каждый клик, если его второй раз, тоотключите радиокнопку

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

<input type='radio' onclick='radioClick(this);' how_many_clicked='0' id='whatever id u need' name='whatever name u need' />

, и создать функцию ур в голове, как показано ниже

   function radioClick(e) {

    var flag = e.getAttribute('how_many_clicked');
    var times = Number(flag);
    times += 1;
    e.setAttribute('how_many_clicked', times.toString())
    if (times > 1) {
        e.checked = false;
        e.setAttribute('how_many_clicked', "0");
    }
    else {
        e.checked = true;
    }
}
0 голосов
/ 06 июля 2011

Id создать пустой массив.Для каждого созданного вами радиокнопки добавьте его идентификатор в массив в качестве ключа и установите его значение равным 0. Это будет счетчик для конкретной кнопки.При каждом нажатии радиокнопки сверяйте идентификатор кнопки с массивом, если он меньше 2, увеличивайте его.Если нет, отключите текущую кнопку.

РЕДАКТИРОВАТЬ: не понимал, что вы проверяли, проверялась ли она, хотя это было количество проверенных раз.

$ ("# id") .is (": флажок")

должно хватить

Еще одно замечание ... если все, что вы делаете, это отключаете элемент от доступа пользователя, вы должны обработать это событиена стороне клиента.Вы будете использовать ненужный обратный вызов сервера для функциональности, легко достижимой через javascript.Используйте обработчики событий jquery click, которые могут быть достаточно общими, чтобы вам не приходилось использовать идентификаторы, что значительно облегчает работу.

Cheers

...