Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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_Jquery_Html_Asp.net Mvc - Fatal编程技术网

Javascript 如何验证是否至少选择了其中一个单选按钮?

Javascript 如何验证是否至少选择了其中一个单选按钮?,javascript,jquery,html,asp.net-mvc,Javascript,Jquery,Html,Asp.net Mvc,我已经尝试了所有我能想到的方法,使用Javascript和/或JQuery验证这些单选按钮。什么都没用。这是我的表格: @using (Html.BeginForm("NextPage", "AccountsFinance", FormMethod.Post)) { <div class="row Question"> <h2>@Model.Question</h2> </div> <div class="row"> &

我已经尝试了所有我能想到的方法,使用Javascript和/或JQuery验证这些单选按钮。什么都没用。这是我的表格:

@using (Html.BeginForm("NextPage", "AccountsFinance", FormMethod.Post))
{
<div class="row Question">
    <h2>@Model.Question</h2>
</div>
<div class="row">
    <table cellspacing="10">
        <tr>
            @foreach (string answer in Model.Answers)
            {
                <td><input id="rad" type="radio" name="answer" value="@answer" /><span>@answer</span></td>
            }
        </tr>
    </table>
</div>
<div class="row footerButtons">
    <div class="col-md-5 col-sm-5">&nbsp;</div>
    <div class="col-md-1 col-sm-1">
        <input class="btn btn-success" type="submit" name="Previous" value="Back" />
    </div>
    <div class="col-md-1 col-sm-1">
        <input class="btn btn-success" type="submit" name="NextPage" value="Next" />
    </div>
    <div class="col-md-5 col-sm-5">&nbsp;</div>
</div>a
}
@使用(Html.BeginForm(“NextPage”,“AccountsFinance”,FormMethod.Post))
{
@模型问题
@foreach(Model.Answers中的字符串应答)
{
@答复
}
A.
}
我不知道问题是我最终拥有多个相同id的输入,还是因为我使用的是HtmlHelper表单。我尝试过许多堆栈溢出解决方案,包括从内联javascript到使用for循环的所有内容,但都不起作用。例如,使用我当前的尝试:

function myFunction() {
    var chx = document.getElementsByTagName('input');
    for (var i = 0; i < chx.length; i++) {
        if (chx[i].type == 'radio' && !chx[i].checked) {
            alert("nope");
            return false;
        }
        else {
            return true;
        }

    }
};
函数myFunction(){
var chx=document.getElementsByTagName('input');
对于(变量i=0;i
无论我是否点击单选按钮,我总是收到
警报(“nope”)显示。出什么事了?提前谢谢

  • 您不应该使用id属性,因为页面上会有很多id属性
  • 使用
    $(“输入[type='radio'])
    从页面获取所有无线电输入

  • 将抓取的结果存储在数组中,然后通过它进行迭代,查看是否已检查

  • 您可以从第3点进一步定制Jquery,以仅获取未选中或选中的单选按钮

  • 例如:

    function myFunction() {
        var radios = $("input[type='radio']");
        for( i = 0; i < radios.length; i++ ) {
            if( radios[i].checked ) {
                return true
            } else {
              return false;
             }
    
        }
        return null;
    }
    
    函数myFunction(){
    变量无线电=$(“输入[type='radio']”);
    对于(i=0;i
  • 您不应该使用id属性,因为页面上会有很多id属性
  • 使用
    $(“输入[type='radio'])
    从页面获取所有无线电输入

  • 将抓取的结果存储在数组中,然后通过它进行迭代,查看是否已检查

  • 您可以从第3点进一步定制Jquery,以仅获取未选中或选中的单选按钮

  • 例如:

    function myFunction() {
        var radios = $("input[type='radio']");
        for( i = 0; i < radios.length; i++ ) {
            if( radios[i].checked ) {
                return true
            } else {
              return false;
             }
    
        }
        return null;
    }
    
    函数myFunction(){
    变量无线电=$(“输入[type='radio']”);
    对于(i=0;i
    您可以使用下面的jQuery代码来验证单选按钮,html没有问题。只需使用下面的代码

    $(function(){
        if($("input:radio:checked").length() <= 0){
           alert('Nope')
        }
        else{
           alert('Yup')
        }
    })
    
    $(函数(){
    
    如果($((“input:radio:checked”).length()可以使用下面的jQuery代码来验证单选按钮,则html没有问题。只需使用下面的代码即可

    $(function(){
        if($("input:radio:checked").length() <= 0){
           alert('Nope')
        }
        else{
           alert('Yup')
        }
    })
    
    $(函数(){
    
    如果($((“input:radio:checked”).length()首先不多次使用同一id,则会使HTML无效

    如果你想检查是否只有一个被检查,你可以在几乎一行中完成

    function myFunction() {
      if ($('input[name="answer"]:checked').length === 1)
      {
         console.log('only one checked');
      }
    };
    
    或者没有日志记录

    function myFunction() {
      return $('input[name="answer"]:checked').length === 1;
    };
    

    仅供参考,如果它们都有相同的名称并且是radio的,那么您最多只能检查一个。因此不需要检查>1。首先,不要多次使用相同的id,这会使您的HTML无效

    如果你想检查是否只有一个被检查,你可以在几乎一行中完成

    function myFunction() {
      if ($('input[name="answer"]:checked').length === 1)
      {
         console.log('only one checked');
      }
    };
    
    或者没有日志记录

    function myFunction() {
      return $('input[name="answer"]:checked').length === 1;
    };
    

    仅供参考,如果它们都有相同的名称并且是radio的,那么您最多只能检查一个。因此不需要检查>1

    您可以使用document.getElementById('rad')吗相反,GetElementsByTagname具有多个具有相同id的输入意味着您的HTML无效。您不应该有多个具有相同id的项id@Liam然后,我们可以为所有单选按钮使用唯一的类名,并通过本文档获取您的问题是什么。您将如何处理验证您可以使用document.getElementById('rad')吗相反,GetElementsByTagname具有多个具有相同id的输入意味着您的HTML无效。您不应该有多个具有相同id的项id@Liam然后,我们可以为所有单选按钮使用唯一的类名,并通过本文档获取您的问题是什么。您将如何处理验证,并且不应再使用…应使用长度。这可能会从jquery的更高版本中删除。因此…我们同意…很好…您打算编辑您的答案吗???因为它现在是错误的。我们都同意这一点,不是吗?并且不应再使用…应使用length。这可能会从jquery的更高版本中删除。因此……我们同意……很好……你打算编辑你的答案吗???…因为现在答案是错误的。我们都同意这一点,不是吗?OP需要一个真/假值,而你不会返回。除非它返回null?OP需要一个真/假值,而你不会返回。除非返回空值?非常有效。谢谢!非常有效。谢谢!