Как сбросить / снять отметку с события события onclick? - PullRequest
2 голосов
/ 27 марта 2012

У меня 2 радиокнопки с 2 группами.

Структура выглядит следующим образом

  1. Основное радио 1
  2. Основное радио 2

Под Основным радио 2 есть еще две вспомогательные радиокнопки.

  1. Основное радио 1
  2. Основное радио 2
    • Вспомогательное радио 1
    • Sub Radio 2

Что я делаю, так это то, что на этапе по умолчанию будут отображаться только кнопки Main Radio 1 и Main Radio 2.При выборе основного радио 2 появляются две вспомогательные радиокнопки основного радио 2.

Когда вы вернетесь к Основному радио 1, оно скроет список Основного радио 2.

То, чего я хочу достичь, это

Когда щелкните Основное радио 1, выбор, который я сделал для Sub Radio 1 или Sub Radio 2, тоже хочу снять / сбросить.

Я пробовал с этим javascript, но безуспешно.

document.getElementById("subradiobuttons").reset(); 

Пожалуйста, любезнопомогите мне решения.Спасибо.

С уважением,

Ответы [ 4 ]

3 голосов
/ 27 марта 2012

Я думаю, что лучший подход для такой простой задачи, как эта, не требует полной библиотеки JavaScript, такой как jQuery.

document.getElementById("main2").addEventListener("click", function()
{
    document.getElementById("subCheckButtons").style.opacity = 1;
}, false);
document.getElementById("main1").addEventListener("click", function()
{
    document.getElementById("subCheckButtons").style.opacity = 0;
    document.getElementById("sub1").checked = false;
    document.getElementById("sub2").checked = false;
}, false);
<input type="radio" id="main1" name="main" />
<input type="radio" id="main2" name="main" />
<div id="subCheckButtons" style="opacity:0;">
    <input type="radio" id="sub1" name="sub" class="subCheck" />
    <input type="radio" id="sub2" name="sub" class="subCheck" />
</div>

Или см. Скрипку .

0 голосов
/ 03 августа 2012

Сброс радиокнопки или RadiobuttonList в виде:

private void ResetFormControlValues(Control parent)
{
    foreach (Control c in parent.Controls)
    {
        if (c.Controls.Count > 0)
        {
            ResetFormControlValues(c);
        }
        else
        {
            switch ((c.GetType().ToString()))
            {
                case "System.Web.UI.WebControls.TextBox":
                    ((TextBox)c).Text = "";
                    break;
                case "System.Web.UI.WebControls.CheckBox":
                    ((CheckBox)c).Checked = false;
                    break;
                case "System.Web.UI.WebControls.RadioButton":
                    ((RadioButton)c).Checked = false;
                    break;
                case "System.Web.UI.WebControls.DropDownList":
                    ((DropDownList)c).SelectedIndex = 0;
                    break;
            }
        }
    }
}
0 голосов
/ 27 марта 2012

С помощью jQuery это сделать намного быстрее, чем JavaScript.Я рекомендую вам сделать что-то вроде этого;

Дайте коробкам радио что-то вроде этого

<input type="radio" name="main1">
<input type="radio" name="main2">
    <input type="radio" name="sub">
    <input type="radio" name="sub">​

Тогда с помощью jQuery вы можете сделать это

$('input[name=main1]').on('click', function() {
    $('input[name=sub]').attr('checked', false);
});

Я предположилздесь вы нашли способ скрыть переключатели.

См. Скрипту этого здесь

Кроме того, убедитесь, что вы добавили jQuery вверху тегов <script></script>, содержащих этот код.

script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"
0 голосов
/ 27 марта 2012

Не проверял это, но ...

<input type="radio" onclick="document.getElementById("subradiobuttons").Checked = false;" />

Или вы можете вызвать функцию Javascript, чтобы сделать немного больше работы / логики

На этой странице есть все, что вам нужно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...