javascript - jQuery 验证插件条件检查输入是否有值或选择下拉列表

标签 javascript jquery jquery-validate

因此,我正在制作某种包含价格的表格,并且允许用户从下拉选择框中选择选项之一,或者将自己的价格放入输入值中。 他不需要这两个值,但我想检查这两个值中的任何一个是否不满足并使用 jquery 验证插件显示错误。

这是表格。

<div class="col-sm-12">
    <label  for="price">Price</label>
        <div class="form-inline">
            <div class="input-group">
                <div class="input-group-addon">€</div>
                <input type="text" class="form-control" name="price" id="price" placeholder="0" data-error="Please insert price for your item" required value="">
                </div>

                <strong class="text-center"> <?php _e('or') ?> </strong>

                <select class="form-control" id="conditional_price" name="conditional_price" placeholder="Select">
                <option value="" <?php echo $conditional_price == '' ? 'selected' : '' ?>>Select</option>
                <option value="1" <?php echo $conditional_price == '1' ? 'selected' : '' ?>>Free</option>
                <option value="2" <?php echo $conditional_price == '2' ? 'selected' : '' ?>>Deal</option>
                </select>
            </div>
            <label for="price" class="validation-error-message text-danger"></label>
            <label for="conditional_price" class="validation-error-message text-danger"></label>
</div>

我尝试了各种选项,但没有任何效果,这是到目前为止部分有效的

    rules: {
        offers: 'required',
        title: 'required',
        price: {
            required: function(element) {
                return $("#conditional_price").is(':empty');
            }
        },
        conditional_price: {
            required: function(element) {
                return $("#price").is(':empty');
            }
        }

    },

因此,在单击提交按钮时,我们应该检查这两个中的任何一个是否有效。如果用户输入价格而不是继续,如果用户输入选择而不是继续,但如果这两个都没有填写(如果用户不输入价格并且也不选择任何内容),则会向输入价格或从下拉列表中选择显示错误.

最佳答案

除了一件事之外,您的代码是正确的。您正在使用 select ,并且 select 的 is(":empty") 将始终返回 false。你可以使用这个。

rules: {
        offers: 'required',
        title: 'required',
        price: {
            required: function(element) {
                return $("#conditional_price").val() == "";
            }
        },
        conditional_price: {
            required: function(element) {
                return $("#price").val() == "";
            }
        }

    },

$("#conditional_price").val() == "" 当选择第一个选项(值为“”)时将返回 true。

关于javascript - jQuery 验证插件条件检查输入是否有值或选择下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49574835/

相关文章:

javascript - 有没有办法使页面内的所有链接平滑滚动?

javascript - localeCompare 在对带有前导变音字符的单词进行排序时显示不一致的行为

javascript - 单击 HTML 中的输入时如何转到下一个选项卡?

html - W3C 有效的 JQuery 表单验证器

javascript - 如何使用 D3 访问对象数组?

javascript - jquery.Lazy 不加载滚动上的所有图像

jquery:自定义选择框 - 当没有选择时折叠

javascript - 如何使用 wp_localize_script 将数组传递给 jQuery?

jquery - 没有表单标签的不引人注目的验证

asp.net-mvc - 如何将 ModelState.AddModel Error 绑定(bind)到 knockout 动态创建的验证范围?