[英]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.