未选择无线电btns组时,显示跨度中的错误消息

时间:2014-01-28 07:15:30

标签: javascript jquery html

如果在提交后没有选中单选按钮按钮,我需要在span中显示错误信息,问题是第一次出现error_radio会显示错误信息,有什么想法吗?

<input type="radio" name="radio1">
<input type="radio" name="radio1">
<span id="error_radio"></span>

<input type="radio" name="radio2">
<input type="radio" name="radio2">
<span id="error_radio"></span>

<input type="radio" name="radio3">
<input type="radio" name="radio3">
<span id="error_radio"></span>

这是我的剧本

var names = [];
$('input[type="radio"]').each(function(){
          names[$(this).attr('name')] = true; 
          });    

        for(radio in names)
        {
          var radio_buttons = $("input[name='" + radio + "']");
          var eNo = $("#err[]")
          if( radio_buttons.filter(':checked').length == 0)
          {
           error_radio.innerHTML= "No answer";
          } 
        }

       });

7 个答案:

答案 0 :(得分:0)

那是因为您重复使用了id。用class替换那些。您可以使用$(radio_buttons).nextUntil获取显示错误消息的范围的引用。

答案 1 :(得分:0)

你只能指定一个ID - $("error_radio")将始终返回具有该ID的第一个元素

- &GT;他们应该有唯一的ID。

答案 2 :(得分:0)

您可以通过以下方法处理     由于 ID 应该是唯一的error_radio使其

在HTML中

<div class="rc">
<input type="radio" name="radio1">
<input type="radio" name="radio1">
<span class="error_radio"></span>
</div>

<div class="rc">
<input type="radio" name="radio2">
<input type="radio" name="radio2">
<span class="error_radio"></span>
</div>

<div class="rc">
<input type="radio" name="radio3">
<input type="radio" name="radio3">
<span class="error_radio"></span>
</div>

在JS中

var names = [];
$('input[type="radio"]').each(function(){
          names[$(this).attr('name')] = true; 
          });    

        for(radio in names)
        {
          var radio_buttons = $("input[name='" + radio + "']");
          var eNo = radio_button.closest(".rc").find(".error_radio");
          if( radio_buttons.filter(':checked').length == 0)
          {
           eNo.html("No answer");
          } 
        }

       });    

答案 3 :(得分:0)

演示FIDDLE

HTML

    <input type="radio" name="radio1">
<input type="radio" name="radio1">
<span id="error_radio"></span>
    <br/>

<input type="radio" name="radio2">
<input type="radio" name="radio2">
<span id="error_radio"></span>
    <br/>

<input type="radio" name="radio3">
<input type="radio" name="radio3">
<span id="error_radio"></span>
    </br>
    <input type="button" value="submit" onclick="return check();"/>

<强> Jquery的

      function check(){
var names = [];
$('input[type="radio"]').each(function(){
          names[$(this).attr('name')] = true; 
          });    

        for(radio in names)
        {
          var radio_buttons = $("input[name='" + radio + "']");

          if( radio_buttons.filter(':checked').length == 0)
          {
           radio_buttons.next('span').text("No answer");
          } 
            else
            {
                radio_buttons.next('span').text("");
            }
        }
}

答案 4 :(得分:0)

  

HTML

<input type="radio" name="radio1" checked>
<input type="radio" name="radio1">
<input type="radio" name="radio2">
<input type="radio" name="radio2">
<input type="radio" name="radio3">
<input type="radio" name="radio3">
<span id="error_radio"></span>
     

Jquery的

if($('input[type="radio"]').attr("checked")=="checked")
{
 $("#error_radio").html("You are  checked");
}
else
{
$("#error_radio").html("You are not  checked");
}
     

JSFIDDLE

答案 5 :(得分:0)

元素应具有唯一的ID。 所以使用class而不是ID元素。

因为class元素可以是常见的,但ID不能。

因为id应该是唯一的

答案 6 :(得分:0)

  

这就是我想要的想法

$('input[type="radio"]').click(function(){

var total = [],count=0;
$('input[type="radio"]:checked').each(function(){
   // if($(this).attr("checked"))
    //{
          total.push($(this).attr("name"));
          count++;
  //}
})


if(count>0){

      $("#error_radio").html("You are  checked "+count+" radios  "+    total.join());
}
else
{
$("#error_radio").html("You are not  checked");
}    

});

var total = [],count=0;
$('input[type="radio"]:checked').each(function(){
   // if($(this).attr("checked"))
    //{
          total.push($(this).attr("name"));
          count++;
  //}})



if(count>0){

      $("#error_radio").html("You are  checked "+count+" radios  "+    total.join());
}
else
{
$("#error_radio").html("You are not  checked");
}

fiddle