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

Drupal视图暴露表单空搜索显全部结果,必填设置无效求助

Drupal视图暴露表单必填验证失效解决方法
  • 检查暴露表单区块的验证触发逻辑
    当暴露表单置于区块中时,默认的「Input required」样式可能无法自动触发前端验证。进入视图的「暴露表单设置」,确认提交按钮的行为设置,确保表单提交时会优先触发验证逻辑,而非直接跳转返回结果。

  • 修正筛选器的必填配置细节
    即使勾选了「input required」,若筛选器设置了默认值,空提交时会自动使用默认值返回全部结果,跳过必填验证。进入筛选器编辑页面,清空「默认值」字段,同时确认筛选器的暴露方式为对应输入类型(如文本框),无特殊默认值覆盖。

  • 添加自定义前端验证(补全前端提示)
    若前端无必填提示,可通过主题或自定义模块的JS代码添加校验,示例代码如下:

    (function ($, Drupal) {
      Drupal.behaviors.requireExposedSearch = {
        attach: function (context, settings) {
          $('.views-exposed-form').submit(function(e) {
            var searchInput = $(this).find('input[name="YOUR_SEARCH_FIELD_MACHINE_NAME"]');
            if (searchInput.val().trim() === '') {
              e.preventDefault();
              searchInput.addClass('error');
              searchInput.siblings('.error-message').remove();
              searchInput.after('<div class="error-message">请输入搜索内容</div>');
            } else {
              searchInput.removeClass('error');
              searchInput.siblings('.error-message').remove();
            }
          });
        }
      };
    })(jQuery, Drupal);
    

    将YOUR_SEARCH_FIELD_MACHINE_NAME替换为实际搜索字段的机器名,这段代码会在表单提交时检查输入是否为空,为空则阻止提交并显示提示。

  • 调整视图无筛选结果时的行为
    若视图页面设置了「无筛选条件时显示所有结果」,会覆盖必填验证的效果。进入视图的「页面设置」,将「无筛选结果时的行为」改为「显示空文本」或「显示错误消息」。

  • 清除Drupal缓存
    所有配置修改完成后,务必清除配置缓存与页面缓存,确保新设置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:25:56