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

使用jQuery根据另一输入框值修改输入框背景色失败求助

嘿,我看你卡在修改输入框背景色这一步了——虽然能成功设置readonly属性,但背景色怎么都不生效对吧?咱们来揪出问题所在,快速解决它~

首先看你代码里的两个明显问题:

  • 选择器写错了:你写的$('add_at_inv2_client')少了ID选择器的#,jQuery找不到目标元素,自然没法修改样式,得改成$('#add_at_inv2_client')
  • 用错了方法:prop()是用来操作DOM元素的原生属性(比如readonly、disabled这类),而背景色是CSS样式属性,根本不属于prop()的管辖范围,得用专门的css()方法,或者更推荐的「类名控制样式」方案

给你两种可行的解决办法:

方法一:直接用css()修改样式

这是最直接的方式,适合简单的样式修改:

if(names[6] == "Yes") { 
  $('#add_at_inv2_client').val(names[3]); 
  // 正确设置背景色
  $('#add_at_inv2_client').css('background-color', '#fefefe'); 
  // 如果你需要设置只读,继续用prop没问题
  $('#add_at_inv2_client').prop('readonly', true);
}

方法二:用CSS类控制样式(更推荐)

把样式和JS逻辑分离,后续修改样式更方便,也更符合前端最佳实践:
先在CSS里定义好样式类:

.custom-readonly-bg {
  background-color: #fefefe;
  /* 还可以加其他相关样式,比如光标样式 */
  cursor: not-allowed;
}

然后在JS里添加/移除这个类:

if(names[6] == "Yes") { 
  $('#add_at_inv2_client')
    .val(names[3])
    .prop('readonly', true)
    .addClass('custom-readonly-bg'); 
} else {
  // 如果需要恢复原状,就移除类和只读属性
  $('#add_at_inv2_client')
    .prop('readonly', false)
    .removeClass('custom-readonly-bg');
}

简单总结下:prop()管DOM元素的原生属性,css()或类名管样式,选择器一定要写对(ID选择器加#),这样就能顺利修改背景色啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:51:37