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

如何用jQuery检测输入框中是否存在指定文本并追加内容

完善jQuery检测输入框文本并追加内容的功能

我来帮你搞定这个需求~你的代码思路是对的,但有几个小细节需要调整,下面是修正后的完整实现:

问题分析

你当前代码里的$('#invoice_number:contains("CRN")')写法不太对::contains选择器是用来匹配元素内部的文本内容,但输入框的内容是存在于value属性里的,应该直接获取输入框的val()值来判断。另外,jQuery对象即使找不到匹配元素也会返回空对象,if(data)的判断永远为true,得换正确的判断方式。

修正后的完整代码

$(document).ready(function(){
    $("#item_inv_desc").change(function(){
        var item_inv_desc = $('select[name=item_inv_desc]').val();
        if (item_inv_desc == 7) {
            var $invoiceInput = $('#invoice_number'); // 缓存输入框对象,提升性能
            var inputValue = $invoiceInput.val();
            // 检测输入框值中是否包含"CRN"
            if (!inputValue.includes("CRN")) {
                // 如果不包含,追加新数据(这里替换成你要追加的内容)
                var newData = " CRN-XXXXXX"; // 示例追加内容
                $invoiceInput.val(inputValue + newData);
            } else {
                // 若文本"CRN"存在则执行的逻辑
                console.log("输入框中已存在CRN文本");
            }
        }
    });
});

关键改进点

  • 缓存DOM对象:把$('#invoice_number')存到变量$invoiceInput里,避免重复查询DOM,提升性能
  • 正确判断文本存在性:用字符串的includes()方法直接判断输入框值是否包含"CRN",如果需要兼容IE等旧浏览器,可以换成inputValue.indexOf("CRN") !== -1
  • 明确的条件分支:!inputValue.includes("CRN")直接表示“不包含CRN”的情况,逻辑更清晰
  • 追加内容的方式:通过val()方法把原内容和新内容拼接后重新赋值,实现追加效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:35:34