Tôi có ba cách tiếp cận, Ở đây bạn có thể sử dụng cả hai <input>
hoặc <textarea>
tùy theo yêu cầu của bạn.
1. Sử dụng Nhập vào <td>
.
Sử dụng <input>
phần tử trong tất cả các <td>
s,
<tr><td><input type="text"></td>....</tr>
Ngoài ra, bạn có thể muốn thay đổi kích thước đầu vào thành kích thước của nó td
. Ví dụ.,
input { width:100%; height:100%; }
Ngoài ra, bạn có thể thay đổi màu của đường viền của hộp nhập liệu khi nó không được chỉnh sửa.
2. Sử dụng contenteditable='true'
thuộc tính. (HTML5)
Tuy nhiên, nếu bạn muốn sử dụng contenteditable='true'
, bạn cũng có thể muốn lưu các giá trị thích hợp vào cơ sở dữ liệu. Bạn có thể đạt được điều này với ajax.
Bạn có thể đính kèm keyhandlers keyup
, keydown
, keypress
vv đến <td>
. Ngoài ra, tốt hơn là sử dụng một số delay () với các sự kiện đó khi người dùng liên tục nhập, sự kiện ajax sẽ không kích hoạt với mỗi lần người dùng nhấn phím. ví dụ,
$('table td').keyup(function() {
clearTimeout($.data(this, 'timer'));
var wait = setTimeout(saveData, 500); // delay after user types
$(this).data('timer', wait);
});
function saveData() {
// ... ajax ...
}
3. Nối <input>
vào <td>
khi nó được nhấp vào.
Thêm phần tử đầu vào td
khi <td>
được nhấp vào, thay thế giá trị của nó theo td
giá trị của. Khi đầu vào bị mờ, hãy thay đổi giá trị của `td bằng giá trị của đầu vào. Tất cả điều này với javascript.