2012-02-21 26 views
5

Tôi cố gắng để thiết lập một màu nền cho một textfield khi giá trị của nó lớn hơn 75. vì vậy tôi thêm vào đoạn code dưới đây để người ngheSetting trên ExtJS trường văn bản

listeners: { 
     beforeRender: function(e) { 
      if (someValue >= 75) { 
       e.style = " background-color: #00CC99"; 
      } 
     } 
} 

nhưng tôi nhận được một cái gì đó như dưới đây khi nó ám,

enter image description here

là có một cách để làm cho màu xanh có thể nhìn thấy trong toàn bộ hộp văn bản thay vì chỉ buttom? Tôi đã tìm ra rằng nó không hiển thị như dự định vì hình nền của CSS mặc định. Nhưng tôi muốn thay đổi css về thay đổi giá trị và không viết css riêng biệt cho chỉ một hộp văn bản. Có cách nào để làm điều đó?

Trả lời

6

Chỉ cần thoát khỏi hình nền:

e.style = "background-image:none;background-color:#00cc99;"; 
/* or */ 
e.style = "background:none #00cc99;"; 

Nếu e là một đối tượng DOM sử dụng element.style.property = 'value' thay vì:

e.style.backgroundImage = 'none'; 
e.style.backgroundColor = '#00cc99'; 
/* or */ 
e.style.background = 'none #00cc99'; 

Vì lợi ích của sự hoàn chỉnh định nghĩa trong ExtJS (theo số ExtJS "Form Field Types" demo):

.x-form-field,.x-form-text{ 
    /* ... */ 
    background:url("../../resources/themes/images/default/form/text-bg.gif") 
     repeat-x scroll 0pt 0pt white; 
} 
+0

vì vậy tôi đặt người nghe vào hộp, khi thay đổi giá trị tôi chỉ nhận tham chiếu của phần tử thông qua hàm thay đổi và cố gắng đặt thuộc tính kiểu như bạn mô tả nhưng dường như nó không hoạt động. Có phương pháp nào khác tôi có thể sử dụng để thiết lập các giá trị kiểu mới? –

+0

Bạn có thể cung cấp [ví dụ trực tuyến đang hoạt động] (http://sscce.org/) về vấn đề của bạn và đưa nó vào câu hỏi của bạn;). Sử dụng http://jsfiddle.net/ ví dụ. – Zeta

+2

Tôi đã sử dụng e.style để đặt các giá trị không hoạt động, vì vậy tôi đã sử dụng firebug để xem phần tử này thực sự có trong đó, hóa ra phương thức được gọi là setStyle trong đối tượng "el" của "e" . Vì vậy, tôi đã thay đổi nó thành e.el.setStyle ("background-image", "none"); e.el.setStyle ("màu nền", "# 00cc99"); hoạt động hoàn hảo. cảm ơn –

Các vấn đề liên quan