使用javascript限制用户的响应数量

使用javascript限制用户的响应数量,javascript,Javascript,我想将响应数量限制在列出的5个社交应用中的3个。用户只能对5个社交应用中的3个进行排名 我使用questback创建问卷,但我需要使用javascript创建条件的帮助 <table> <tr> <td>Instagram</td> <td><input type="radio" class="socialapps" name="socialapps_1" value="Radio A"></td>

我想将响应数量限制在列出的5个社交应用中的3个。用户只能对5个社交应用中的3个进行排名

我使用questback创建问卷,但我需要使用javascript创建条件的帮助

<table>   
<tr> 
<td>Instagram</td> 
<td><input type="radio" class="socialapps" name="socialapps_1" 
value="Radio A"></td> 
<td><input type="radio" class="socialapps" name="socialapps_1" 
value="Radio B"></td> 
<td><input type="radio" class="socialapps" name="socialapps_1" 
value="Ipod A"></td> 
</tr>
<tr> 
<td>Twitter</td> 
<td><input type="radio" class="socialapps" name="socialapps_2" 
value="Radio A"></td> 
<td><input type="radio" class="socialapps" name="socialapps_2" 
value="Radio B"></td> 
<td><input type="radio" class="socialapps" name="socialapps_2" 
value="Ipod A"></td> 
</tr>
<tr> 
<td>Facebook</td> 
<td><input type="radio" class="socialapps" name="socialapps_3" 
value="Radio A"></td> 
<td><input type="radio" class="socialapps" name="socialapps_3" 
value="Radio B"></td> 
<td><input type="radio" class="socialapps" name="socialapps_3" 
value="Ipod A"></td> 
</tr>
<tr> 
<td>Linkedin</td> 
<td><input type="radio" class="socialapps" name="socialapps_4" 
value="Radio A"></td> 
<td><input type="radio" class="socialapps" name="socialapps_4" 
value="Radio B"></td> 
<td><input type="radio" class="socialapps" name="socialapps_4" 
value="Ipod A"></td> 
</tr>
<tr> 
<td>Whatsapp</td> 
<td><input type="radio" class="socialapps" name="socialapps_5" 
value="Radio A"></td> 
<td><input type="radio" class="socialapps" name="socialapps_5" 
value="Radio B"></td> 
<td><input type="radio" class="socialapps" name="socialapps_5" 
value="Ipod A"></td> 
</tr>
</table>

$(document).ready(function () {
$("input[class='socialapps']").change(function () {
  var maxAllowed = 3;
  var cnt = $("input[class='socialapps']:checked").length;
  if (cnt > maxAllowed)
  {
     $(this).prop("checked", "");
     alert('Select maximum ' + maxAllowed + ' social apps!');
 }
});
});

一款图片分享应用
啁啾
脸谱网
Linkedin
WhatsApp
$(文档).ready(函数(){
$(“输入[class='socialapps']”)。更改(函数(){
var最大允许值=3;
var cnt=$(“输入[class='socialapps']:选中”).length;
如果(cnt>maxAllowed)
{
$(this.prop(“选中”和“”);
警报('选择最大'+maxAllowed+'社交应用!');
}
});
});

谢谢。

使用以下方法搜索具有相同值的其他选中输入:

$inputs = $("input[class='socialapps']");

if ( $inputs.filter('[value="' + val + '"]:checked').length > 1 ) { ... }
(函数($){
$inputs=$(“输入[class='socialapps']”);
$inputs.change(函数(){
变量$this=$(this),
val=$this.val(),
最大允许值=3,
cnt=$(“输入[class='socialapps']:选中”)。长度;
如果(cnt>maxAllowed){
$this.prop(“选中的“,”);
警报('选择最大'+maxAllowed+'社交应用!');
}
如果($inputs.filter('[value=“'+val+'”]:选中')。长度>1){
$this.prop(“选中的“,”);
警报(“仅一个”+val);
}
});
})(jQuery)

一款图片分享应用
啁啾
脸谱网
Linkedin
WhatsApp

您的问题很有趣,所以我花了一些时间来使用代码尽可能少的解决方案(在我之前的时间)

$(文档).ready(函数(){
var最大允许值=3;
函数检查(){
if($((“input.socialapps:checked”).length>maxAllowed){
警报('选择最大'+maxAllowed+'社交应用!');
返回false;
}
返回true;
}
$(“input.socialapps”).change(函数(e){
如果(!check())e.target.checked=false;
});
});

一款图片分享应用
啁啾
脸谱网
Linkedin
WhatsApp

请与我们分享您迄今为止尝试过的代码,我们需要您的代码来解决您的问题。我知道您希望表格中有行和列,但当您以这种方式使用单选按钮时,水平行阴影表示单选按钮与水平轴相关。然而,您实际上是在要求他们只选择“每列中的一列”。即使我们给你的JS符合你的要求,我也不认为你会得到很好的调查结果。请大家道歉。我对这个很陌生。我提供了一个示例代码供您参考。再次道歉。嗨,克里斯·哈皮,非常感谢你的解决方案。我如何使排名条件成为可能?假设第一列广播是排名1,以此类推。所以,若用户已经为Instagram选择了第一列广播,他们就不能再为其他社交应用选择第一列广播。感谢you@MursidRahman我已经更新了我的答案。我希望它符合你的要求。上帝保佑:)天哪,克里斯!非常感谢你!!真是太棒了@哈维娅,拉默·哈什。是的,在质量和速度之间有一场斗争。