如果在提交后没有选中单选按钮按钮,我需要在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";
}
}
});
答案 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"); }
答案 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");
}