Bootstrap 需要验证才能选择下拉列表之一

Posted

技术标签:

【中文标题】Bootstrap 需要验证才能选择下拉列表之一【英文标题】:Bootstrap required validation to select one of the dropdown 【发布时间】:2019-07-06 07:32:04 【问题描述】:

我有这个小提琴(来自我的项目)https://jsfiddle.net/autofiddle/cap6g9wq/20/

我想要客户名称和第一个下拉菜单。

根据您在第一个下拉菜单中选择的内容,会显示另一个带有数字的下拉菜单。

如果所有下拉列表都为 0,我想在单击按钮时验证错误(显示 div id = "quantity-zero")。如果任何下拉列表大于 0,则验证正常。

我已经像这样进行了测试(认为有更好的方法),但它不起作用,我想将它连接到引导验证,而不只是让 div 在下面的循环中可见。

var totalQuantity = 0;

$(".quantity-select").each(function () 
    if(parseInt($(this).val()) === 0) 
        //display the bootstrap error.
        //don't want it like this: $( "#quantity-zero" ).show();
    
)

【问题讨论】:

【参考方案1】:

您可以使用jQuery Validation Plugin 来验证您的表单,您不需要在标签上添加required,只需添加一些类似以下代码的规则即可:

$("#order-form").validate(
    rules: 
        customerName: "required",
        caseSelect: "required",
    ,
    messages: 
        customerName: "Please enter a customer namn.",
        caseSelect: "You need to select a quantity for your case.",
    
);

试试这个小提琴:https://jsfiddle.net/g5y9ho3x/

【讨论】:

如果您在第一个下拉列表中选择案例 2 并让第二个新的可见下拉列表仍然为零,您不会收到任何验证错误。当你点击按钮时。【参考方案2】:

选择没有值。您应该从所选选项中获取值,可能是这样的:

$(".quantity-select option:selected").val();

编辑:

如果要检查所有可见的下拉菜单,可以使用以下代码:

$('.quantity-select:visible').each(function()
    $(this).find('option:selected').val();
);

$(this).find('option:selected').val(); 是所选下拉列表的值。因此,您可以检查每个语句,并可能根据值将 var 设置为 true 或 false。

【讨论】:

好的,谢谢,但我真正的问题是将所有数字下拉列表都连接到本机引导验证。需要 3 个下拉列表之一,或超过 0 个。如果不是,我希望引导验证失败。 @Xtreme 我不明白这个问题?为什么所有下拉列表的值都> 0?因为根据案例选择显示了一个下拉列表对吗? 如果两个可见下拉列表之一多于一个,我已更新jsfiddle.net/autofiddle/cap6g9wq/23 验证通过。如果两个可见下拉列表 i 0 验证失败。我只是用一个来使它简单。我有时有不止一个可见的下拉菜单,并且至少有一个可见的需要不止一个才能通过验证。 @Xtreme 查看更新后的答案。也许这可以帮助您朝着正确的方向前进。

以上是关于Bootstrap 需要验证才能选择下拉列表之一的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery php 验证 Bootstrap + 选择的插件

从下拉列表中填充 Bootstrap 表单

.NET Web 表单下拉列表和日期时间选择器需要 HTML 5 验证

bootstrap-select为啥不显示下拉列表

使用 Bootstrap Selectpicker 的搜索框下拉菜单不起作用

如何以编程方式打开 Bootstrap 下拉菜单