【问题标题】:How to find nearest set of radio button and clear them如何找到最近的一组单选按钮并清除它们
【发布时间】:2017-11-25 15:44:01
【问题描述】:
<div class="answer">
    <div class="r0">
        <input type="radio" name="q31:1_answer" value="0" <?php echo ($quiz_answer1=='0' )? 'checked': ''?> id="q31:1_answer0">
        <label for="q31:1_answer0" class="m-l-1">a. &lt;break&gt;
        </label>
    </div>
    <div class="r1">
        <input type="radio" name="q31:1_answer" value="1" <?php echo ($quiz_answer1=='1' )? 'checked': ''?> id="q31:1_answer1">
        <label for="q31:1_answer1" class="m-l-1">b. &lt;br&gt;
        </label>
    </div>
    <div class="r0">
        <input type="radio" name="q31:1_answer" value="2" <?php echo ($quiz_answer1=='2' )? 'checked': ''?> id="q31:1_answer2">
        <label for="q31:1_answer2" class="m-l-1">c. &nbsp;&lt;lb&gt;
        </label>
    </div>
    <button type='button' name='clear' onclick=javascript:clear_me(this);>Clear</button>
</div>

<div class="answer" id=1>
    <div class="r0">
        <input type="radio" name="q105:2_answer" value="0" id="q105:2_answer0" <?php echo ($quiz_answer4=='0' )? 'checked': ''?> >
        <label for="q105:2_answer0" class="m-l-1">a. Home Tool Markup Language</label>
    </div>
    <div class="r1">
        <input type="radio" name="q105:2_answer" value="1" id="q105:2_answer1" <?php echo ($quiz_answer4=='1' )? 'checked': ''?>>
        <label for="q105:2_answer1" class="m-l-1">b. Hyper Text Markup Language</label>
    </div>
    <div class="r0">
        <input type="radio" name="q105:2_answer" value="2" id="q105:2_answer2" <?php echo ($quiz_answer4=='2' )? 'checked': ''?>>
        <label for="q105:2_answer2" class="m-l-1">c. Hyperlinks and Text Markup Language</label>
    </div>
    <button type='button' name='clear' onclick=javascript:clear_me();>Clear</button>
</div>

我有两组单选按钮和一组清除按钮,我想清除最近的一组单选按钮 单击清除按钮。我首先尝试通过以下代码使用一组单选按钮进行清除 哪个有效。

function clear_me()
{
$('input:radio').attr("checked", false);
}

但后来我写了一个脚本来找到最近的一个并清除它,这没有用。 在下面的代码中,我试图找出输入元素的名称,然后将其清除,名称将变为动态,因此我无法对其进行硬编码。

function clear_me()
{
var elementName =  $(this).closest('.answer').closest('.r0').closest('input').attr('name');
var ele = document.getElementsByName(elementName);
    for(var i=0;i<ele.length;i++)
        ele[i].checked = false;
}

谁能帮我写一个脚本来完成预期的工作?

【问题讨论】:

    标签: javascript jquery html css radio-button


    【解决方案1】:

    您已接近解决方案,使用.closest() 遍历answer 元素,然后使用.find() 定位子:radio 元素,然后使用.prop() 方法设置其checked 属性。

    $(this).closest('.answer').find(':radio').prop('checked', false)
    

    当您使用 jQuery 时,我建议您使用不显眼的事件处理程序

    $('button[name=clear]').on('click', function() {
        $(this).closest('.answer').find(':radio').prop('checked', false)
    });
    

    $('button[name=clear]').on('click', function() {
      $(this).closest('.answer').find(':radio').prop('checked', false)
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="answer">
      <div class="r0">
        <input type="radio" name="q31:1_answer" value="0">
        <label for="q31:1_answer0" class="m-l-1">a. &lt;break&gt;
            </label>
      </div>
      <div class="r1">
        <input type="radio" name="q31:1_answer" value="1">
        <label for="q31:1_answer1" class="m-l-1">b. &lt;br&gt;
            </label>
      </div>
      <div class="r0">
        <input type="radio" name="q31:1_answer" value="2">
        <label for="q31:1_answer2" class="m-l-1">c. &nbsp;&lt;lb&gt;
            </label>
      </div>
      <button type='button' name='clear'>Clear</button>
    </div>
    
    <div class="answer" id=1>
      <div class="r0">
        <input type="radio" name="q105:2_answer" value="0" id="q105:2_answer0">
        <label for="q105:2_answer0" class="m-l-1">a. Home Tool Markup Language</label>
      </div>
      <div class="r1">
        <input type="radio" name="q105:2_answer" value="1" id="q105:2_answer1">
        <label for="q105:2_answer1" class="m-l-1">b. Hyper Text Markup Language</label>
      </div>
      <div class="r0">
        <input type="radio" name="q105:2_answer" value="2" id="q105:2_answer2">
        <label for="q105:2_answer2" class="m-l-1">c. Hyperlinks and Text Markup Language</label>
      </div>
      <button type='button' name='clear'>Clear</button>
    </div>

    【讨论】:

    • 感谢 Satpal !这很有帮助。
    猜你喜欢
    • 2023-03-21
    • 2012-03-12
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 2014-07-04
    • 2011-02-02
    相关资源
    最近更新 更多