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

Redmine文本框含特定值的JS验证失效问题求助

解决Redmine文本框包含特定内容的验证问题

问题分析

你的代码当前使用严格相等判断field.val() == 'urgent',只有当输入内容完全等于'urgent'时才会触发验证逻辑,自然无法匹配包含该关键词的其他内容。

修改后的代码

$(function() {
  const setup = function(fieldSelector) {
    const field = $(fieldSelector);
    const applyStyle = function() {
      // 转小写后检查是否包含'urgent',忽略大小写差异
      const containsUrgent = field.val().toLowerCase().includes('urgent');
      if (containsUrgent) 
      {
        alert("Text not allowed!");
        field.css({'background-color': 'red'});
      } else {
        field.css({'background-color': ''});
      }
    };
    // 同时监听change和keyup事件,实现实时验证
    field.on('change keyup', applyStyle);
    applyStyle();
  }
  // 注意:根据目标自定义字段修改ID
  setup('#issue_custom_field_values_17');
});

关键改动说明

  • 包含判断替换严格相等:用toLowerCase().includes('urgent')替代原有的== 'urgent',既实现了包含匹配,又忽略了大小写(比如输入'Urgent'、'URGENT'也会触发验证)。如果不需要忽略大小写,直接用field.val().includes('urgent')即可。
  • 添加实时验证事件:新增keyup事件监听,用户输入过程中就能实时触发验证,而不是仅在输入框失去焦点时才生效,提升交互体验。

内容的提问来源于stack exchange,提问作者Mohamed El Habchi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:15:29