You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery实现姓名搜索时二选一的条件必填验证?

表单验证调整:姓名搜索框二选一必填

第一步:修改HTML单选按钮的点击事件

移除SearchName单选按钮onclick事件中对FirstName和LastName的markRequired()调用,因为我们将改用jQuery Validate的分组规则实现二选一必填,不再依赖HTML5原生必填属性:

<label><input type="radio" name="SearchType" value="1" id="SearchName" onclick="show('namediv'); hide('datediv'); removeRequired('StartDate'); removeRequired('EndDate')" class="search-options" /> Name</label><br />

第二步:调整jQuery Validate验证规则

确保已引入additional-methods.js(require_from_group方法包含在该文件中),然后修改验证规则,给FirstName和LastName设置分组必填逻辑,且仅当SearchName单选按钮被选中时生效:

$("#form").validate({
    rules: {
        FirstName: {
            maxlength: 20,
            require_from_group: {
                param: [1, '.personname'],
                depends: function(element) {
                    return $('#SearchName').is(':checked');
                }
            }
        },
        LastName: {
            maxlength: 20,
            require_from_group: {
                param: [1, '.personname'],
                depends: function(element) {
                    return $('#SearchName').is(':checked');
                }
            }
        },
        StartDate: {
            required: '#SearchDate:checked',
            date: true
        },
        EndDate: {
            required: '#SearchDate:checked',
            date: true
        }
    },
    messages: {
        FirstName: {
            maxlength: $.format("Maximum {0} characters allowed!"),
            require_from_group: "请填写名字或姓氏其中一项"
        },
        LastName: {
            maxlength: $.format("Maximum {0} characters allowed!"),
            require_from_group: "请填写名字或姓氏其中一项"
        },
        StartDate: {
            required: "Required Field",
            date: "Enter a valid date"
        },
        EndDate: {
            required: "Required Field",
            date: "Enter a valid date"
        }
    },
    // 可选配置:合并两个输入框的错误提示,避免重复显示
    groups: {
        nameGroup: "FirstName LastName"
    }
});

核心逻辑说明

  • require_from_group: [1, '.personname']:指定带有.personname类的输入框中,至少需要填写1个
  • depends函数:控制规则的生效条件,仅当SearchName单选按钮被选中时,才启用该分组必填规则
  • groups配置:将FirstName和LastName的错误提示合并为一条,提升用户体验

内容的提问来源于stack exchange,提问作者Miranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 11:49:56