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

时间:2018-03-30 12:52:46

标签: 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');
            }
        }

    },

因此,点击提交按钮,我们应该检查这两个中的任何一个是否有效。如果用户把价格放在继续之后,如果用户选择选择而不是继续,但是如果这两个人都没有填写(如果用户没有放价格而且也没有选择任何东西)以显示错误要么放价格或从下拉列表中选择。

1 个答案:

答案 0 :(得分:1)

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

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

    },
当第一个选项(值为&#34;&#34;)被选中时,

$("#conditional_price").val() == ""将返回true。