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

如何通过if条件设置文本框样式 弹窗打开即显示红框红底高亮

问题原因

你之前的代码把高亮类的添加、移除逻辑绑定在了focus(获得焦点,即点击输入框)、blur(失去焦点,即点输入框外区域)事件上,这类事件只有用户操作输入框时才会触发,弹窗打开时没有触发对应事件,自然不会自动显示样式。另外你写的.focused样式类只定义了红色边框,没加背景色属性。

具体修改步骤

1. 补全CSS样式

给高亮类加上背景色属性,建议用半透浅红,避免遮挡输入框文字:

.focused {
  border: solid 1px red;
  background-color: rgba(255, 0, 0, 0.15); /* 需要纯红背景直接替换为#ff0000即可 */
}

2. 改写AJAX回调逻辑

去掉事件绑定写法,拿到接口返回的用户状态后,直接判断状态给输入框加/删样式类,逻辑在弹窗弹出前就执行完,打开弹窗就能直接看到效果。同时每次执行先清空旧状态,避免弹窗复用时残留上次的样式:
把你原来success回调里判断data.userstatus的整段代码替换为:

success:function(data){  
  // 先清空输入框旧值和旧样式,防止状态残留
  $('#user_status').val('').removeClass('focused');
  // 赋值状态值
  $('#user_status').val(data.userstatus);
  // 直接根据状态判断是否加高亮,不需要等用户点击
  if(data.userstatus == 'Active'){
    $('#user_status').addClass('focused');
  }

  $('#employee_id_return').val(data.row_id);  
  $('#insert').val("Update");
  $('#add_data_Modal').modal('show'); 
},
error: function(req, status, error) {
  alert(req.responseText);      
}   

3. 补全新增弹窗的样式重置

你原来点新增按钮打开弹窗时只重置了表单值,没清除高亮样式,补上这行避免样式串用:

$('#add').click(function(){  
  $('#insert').val("Insert");  
  $('#insert_form')[0].reset();
  // 新增弹窗默认清除状态高亮
  $('#user_status').removeClass('focused');
});

注意:你最开始贴的输入框代码ID是user_type,后面JS里选的是user_status,记得确认两个ID保持一致,否则会选不到元素导致样式不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 12:45:25