简体   繁体   English

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

[英]Limit the number of response by user using javascript

I would like to limit the number of response to just 3 from 5 of the Social Apps listed.我想将响应数量限制为列出的 5 个社交应用程序中的 3 个。 User can only rank 3 social apps out of 5.用户只能在 5 个社交应用中对 3 个进行排名。

Im using questback to create the questionnaire but I need help in creating the condition using javascript我使用 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!');
 }
});
});

Thank you.谢谢你。

Search for other checked inputs that have the same value using:使用以下命令搜索具有相同值的其他已检查输入:

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

if ( $inputs.filter('[value="' + val + '"]:checked').length > 1 ) { ... }

 (function($) { $inputs = $("input[class='socialapps']"); $inputs.change(function() { var $this = $(this), val = $this.val(), maxAllowed = 3, cnt = $("input[class='socialapps']:checked").length; if (cnt > maxAllowed) { $this.prop("checked", ""); alert('Select maximum ' + maxAllowed + ' social apps!'); } if ($inputs.filter('[value="' + val + '"]:checked').length > 1) { $this.prop("checked", ""); alert('Only one ' + val); } }); })(jQuery);
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <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>

Your question was interesting, so I took some time to play with solution that has as little code as possible (in the time I had).你的问题很有趣,所以我花了一些时间来尝试代码尽可能少的解决方案(在我拥有的时间内)。

 $(document).ready(function () { var maxAllowed = 3; function check(){ if ($("input.socialapps:checked").length > maxAllowed){ alert('Select maximum ' + maxAllowed + ' social apps!'); return false; } return true; } $("input.socialapps").change(function (e) { if (!check()) e.target.checked = false; }); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td>Instagram</td> <td><input type="radio" class="socialapps" value="1" name="socialapps_1" value="Radio A"></td> <td><input type="radio" class="socialapps" value="2" name="socialapps_1" value="Radio B"></td> <td><input type="radio" class="socialapps" value="3" name="socialapps_1" value="Ipod A"></td> </tr> <tr> <td>Twitter</td> <td><input type="radio" class="socialapps" value="1" name="socialapps_2" value="Radio A"></td> <td><input type="radio" class="socialapps" value="2" name="socialapps_2" value="Radio B"></td> <td><input type="radio" class="socialapps" value="3" name="socialapps_2" value="Ipod A"></td> </tr> <tr> <td>Facebook</td> <td><input type="radio" class="socialapps" value="1" name="socialapps_3" value="Radio A"></td> <td><input type="radio" class="socialapps" value="2" name="socialapps_3" value="Radio B"></td> <td><input type="radio" class="socialapps" value="3" name="socialapps_3" value="Ipod A"></td> </tr> <tr> <td>Linkedin</td> <td><input type="radio" class="socialapps" value="1" name="socialapps_4" value="Radio A"></td> <td><input type="radio" class="socialapps" value="2" name="socialapps_4" value="Radio B"></td> <td><input type="radio" class="socialapps" value="3" name="socialapps_4" value="Ipod A"></td> </tr> <tr> <td>Whatsapp</td> <td><input type="radio" class="socialapps" value="1" name="socialapps_5" value="Radio A"></td> <td><input type="radio" class="socialapps" value="2" name="socialapps_5" value="Radio B"></td> <td><input type="radio" class="socialapps" value="3" name="socialapps_5" value="Ipod A"></td> </tr> </table>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM