Redmine视图自定义插件:输入文本转小写功能失效求助
问题解决:输入框内容无法转为小写提交
- 核心问题:你的代码中
field.val().toLowerCase()仅生成了小写字符串,但未将结果重新赋值给输入框,因此输入框的实际值并未改变。toLowerCase()方法不会修改原字符串,而是返回新的小写字符串。 - 补充说明:CSS的
text-transform: lowercase仅做视觉层面的转换,不会改变输入框的实际value值,所以提交后仍会显示原始内容。
修正后的代码
const setup = function(fieldSelector) { const field = $(fieldSelector); const convertToLowerCase = function() { // 获取当前值并转为小写,重新赋值给输入框 const currentValue = field.val(); field.val(currentValue.toLowerCase()); }; // 监听失焦(change)和实时输入(input)事件 field.on('change input', convertToLowerCase); // 初始化时执行一次转换 convertToLowerCase(); } // 目标自定义字段ID setup('#issue_custom_field_values_17');
代码说明
- 移除冗余判断:无需检测是否存在大写字母,直接调用
toLowerCase()即可——无大写的内容转换后不会变化,不影响功能。 - 新增实时监听:添加
input事件,让用户输入过程中实时转为小写,提升交互体验,而非仅在失焦时处理。 - 关键修复:通过
field.val(新值)将转换后的结果重新设置到输入框,确保输入框的实际value被修改,提交时即为小写内容。
内容的提问来源于stack exchange,提问作者Mohamed El Habchi
相关产品推荐
相关产品推荐

