Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

làm cho biểu mẫu bảng của tôi động

Bạn có thể tạo các hành động động trên các trường biểu mẫu dạng bảng, nhưng bạn cần biết một số nội dung Javascript / jQuery / DOM vì nó không thể được thực hiện một cách khai báo như có thể với các mục trang.

Ví dụ:tôi đã tạo một biểu mẫu dạng bảng đơn giản trên bảng EMP:

Sử dụng công cụ Kiểm tra phần tử của trình duyệt, tôi có thể thấy rằng HTML cho trường Tên trên hàng 3 trông giống như sau:

<input type="text" name="f03" size="12" maxlength="2000" value="Ben Dev"
    class="u-TF-item u-TF-item--text " id="f03_0003" autocomplete="off">

Các bit liên quan cần lưu ý là tên "f03" và ID "f03_0003". Đối với tất cả các trường biểu mẫu dạng bảng, tên biểu thị cột và giống nhau đối với tất cả các trường trong cột đó. ID được tạo thành từ tên cộng với một chuỗi để đại diện cho hàng - trong trường hợp này là "_0003" để đại diện cho hàng 3.

Tương tự, các trường Hiredate đều được đặt tên là "f004" và có các ID như "f04_0003".

Được trang bị thông tin này, chúng tôi có thể viết một hành động động. Ví dụ, giả sử rằng bất cứ khi nào Ename trống thì Hiredate sẽ được ẩn đi, nếu không sẽ hiển thị. Trong mã giả:

bất cứ khi nào một phần tử có tên "f03" được thay đổi, phần tử có tên "f04" trên cùng một hàng sẽ được ẩn hoặc hiển thị.

Vì vậy, chúng ta có thể tạo một hành động tổng hợp với điều kiện Khi như thế này:

  • Sự kiện =Thay đổi
  • Loại lựa chọn =bộ chọn jQuery
  • jQuery selector =input [name ="f03"]

tức là bất cứ khi nào đầu vào có tên là "f03" được thay đổi, hãy kích hoạt hành động này.

Hành động được thực hiện sẽ phải là "Thực thi mã Javascript" và mã có thể là:

// Get the ID of this item e.g. f03_0004
var this_id = $(this.triggeringElement).attr('id');
// Derive the ID of the corresponding Hiredate item e.g. f04_0004
var that_id = 'f04'+this_id.substr(3);

if ($(this.triggeringElement).val() == "") {
    // Ename is empty so hide Hiredate
    $('#'+that_id).closest('span').hide();
} else {
    // Ename is not empty so show Hiredate
    $('#'+that_id).closest('span').show();
}

Vì Hiredate là một công cụ chọn ngày, tôi cần phải ẩn / hiển thị cả trường và biểu tượng bộ chọn ngày của nó. Tôi đã chọn làm điều này bằng cách ẩn / hiển thị khoảng cách chứa cả hai. Mã này có thể được viết theo nhiều cách khác nhau.

Bạn có thể áp dụng các kỹ thuật tương tự để đạt được mục tiêu của mình, nhưng như bạn có thể thấy, điều đó không hề dễ dàng chút nào.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ mục toàn cầu không phân vùng trong Oracle

  2. Bảng tạm thời trong Oracle?

  3. Tham số thời gian chờ kết nối cho Oracle DB từ python

  4. Nhận ORA-01031:không đủ đặc quyền khi truy vấn bảng thay vì ORA-00942:bảng hoặc chế độ xem không tồn tại

  5. Có cách nào để buộc Oracle thay đổi kế hoạch của truy vấn mà không sử dụng gợi ý không?