Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何清除Javascript中的单选按钮?_Javascript_Html - Fatal编程技术网

如何清除Javascript中的单选按钮?

如何清除Javascript中的单选按钮?,javascript,html,Javascript,Html,我有一个名为“选择”的单选按钮,上面有“是”和“否”两个选项。如果我选择任何一个选项并单击标有“清除”的按钮,我需要使用javascript清除所选选项。我怎样才能做到这一点呢?这应该行得通。确保每个按钮都有唯一的ID。(用两个单选按钮的ID替换“选择是”和“选择否”) 应如何命名单选按钮的示例: <input type="radio" name="Choose" id="Choose_Yes" value="1" /> Yes <input type="radio" name

我有一个名为“选择”的单选按钮,上面有“是”和“否”两个选项。如果我选择任何一个选项并单击标有“清除”的按钮,我需要使用javascript清除所选选项。我怎样才能做到这一点呢?

这应该行得通。确保每个按钮都有唯一的ID。(用两个单选按钮的ID替换“选择是”和“选择否”)

应如何命名单选按钮的示例:

<input type="radio" name="Choose" id="Choose_Yes" value="1" /> Yes
<input type="radio" name="Choose" id="Choose_No" value="2" /> No
是
不
是
不

如果只添加第三个按钮(“两者都不”)不是更好的选择,它将给出与未选择相同的结果吗?

对于元素,您不需要具有唯一的
id
,您可以通过其
名称
属性访问它们:

如果您使用的是
name=“Choose”
,则:

  • 使用jQuery,它非常简单:

    $('input[name=Choose]').attr('checked',false); $('input[name=Choose]').attr('checked',false);
  • 或者在纯JavaScript中:

    var ele = document.getElementsByName("Choose"); for(var i=0;i<ele.length;i++) ele[i].checked = false; var ele=document.getElementsByName(“选择”);
    对于(var i=0;iSimple,不需要jQuery:

    <a href="javascript:clearChecks('group1')">clear</a>
    
    <script type="text/javascript">
    function clearChecks(radioName) {
        var radio = document.form1[radioName]
        for(x=0;x<radio.length;x++) {
            document.form1[radioName][x].checked = false
        }
    }
    
    </script>
    
    
    函数清除检查(radioName){
    var radio=文件.格式1[无线电名称]
    
    对于(x=0;x,如果不打算使用jQuery,可以使用如下简单javascript

    document.querySelector('input[name="Choose"]:checked').checked = false;
    

    这样做的唯一好处是,您不必为两个单选按钮使用循环

    清除一组单选按钮的ES6方法:

    document.getElementById("Choose_Yes").checked = false;
    document.getElementById("Choose_No").checked = false;
    
        Array.from( document.querySelectorAll('input[name="group-name"]:checked'), input => input.checked = false );
    

    如果单选按钮的id为“男性”和“女性”,则可以使用jquery进行值重置

    $('input[id=male]').attr('checked',false);
    $('input[id=female]').attr('checked',false);
    

    如果您有一个具有相同id的单选按钮,则可以清除选择

    单选按钮定义:

    <input type="radio" name="paymentType" id="paymentType" value="CASH" /> CASH
    <input type="radio" name="paymentType" id="paymentType" value="CHEQUE" /> CHEQUE
    <input type="radio" name="paymentType" id="paymentType" value="DD" /> DD
    
    document.formName.paymentType[0].checked = false;
    document.formName.paymentType[1].checked = false;
    document.formName.paymentType[2].checked = false;
    ...
    

    就我而言,这完成了工作:

    const chbx = document.getElementsByName("input_name");
    
    for(let i=0; i < chbx.length; i++) {
        chbx[i].checked = false;
    }
    
    const chbx=document.getElementsByName(“输入_名称”);
    for(设i=0;i
    如果我有一个通用id,那么我如何继续?您需要将其更改为单独的id。一个页面上不应该有多个相同的id。您需要使用相同的名称使其成为单选按钮组,但id必须是唯一的。@i2ijeya如果我想选择mo,我将使用一个库,例如可以按类选择的库立即重新设置单选按钮。您还可以使用document.getElementsByName(“选择”)。虽然jQuery很好,但它不需要用于每一点JavaScript。在这种情况下,对于在普通JavaScript中执行非常简单的操作来说,这将是不必要的开销。正如David所说,您可以通过名称访问,因此此函数不需要id。此外,我怀疑输入错误——您的值对于两个按钮都是相同的。Th如果勾选“否”,at实际上将不起作用,因为javascript将永远看不到具有相同ID的第二个元素。-1.具有相同ID的多个元素是无效的HTML。事实上,这是David Andersson建议的。我想我在发布之前错过了他的评论。+1它真正起作用的NVRAM。。谢谢,我选择它作为我接受的answ呃。谢谢大家的宝贵回答。在1.6以上的jquery版本中,使用$('input[name=Choose')。prop('checked',false);我引用这个解决方案。单选按钮作为UI元素,不意味着要重置(即:没有一个选中)它们被设计为从1个选项开始检查,并有可能改变它。您可以考虑将单选按钮更改为下拉列表:{空}。|对|No@FiliniWindows窗体编程有三态单选按钮,不知道为什么它们不能用于Web。@Shawn,你确定你没有考虑三态复选框吗?不管怎样,这与重置单选按钮的可能性有什么关系?@Filini-有时你可能需要重置单选按钮,但都不选中。我面临这种情况在测验应用程序中-当用户重新启动测验时,应取消选中所有选项(单选按钮)(在AngularJS中创建)。我对这个js代码有问题。当你重置一个单选组时,每当我再次选择相同的值时,我会得到一个未定义的值
    const chbx = document.getElementsByName("input_name");
    
    for(let i=0; i < chbx.length; i++) {
        chbx[i].checked = false;
    }