Trường nhập văn bản nhiều dòng lưu trữ một chuỗi làm giá trị và một chuỗi làm văn bản của trường đó. Giá trị của thuộc tính này luôn là một chuỗi hợp lệ, trong khi văn bản của thuộc tính này có thể là bất kỳ chuỗi nào được nhập vào trình chỉnh sửa. Không giống như trường nhập văn bản, trường này cũng hỗ trợ các ký tự dòng mới được nhập vào trình chỉnh sửa.
Trường nhập văn bản nhiều dòng
Trường nhập văn bản nhiều dòng với trình chỉnh sửa đang mở
Trường nhập văn bản nhiều dòng trên khối đã thu gọn
dựa trên xu hướng
JSON
{
"type": "example_multilinetextinput",
"message0": "multiline text input: %1",
"args0": [
{
"type": "field_multilinetext",
"name": "FIELDNAME",
"text": "default text\n with newline character",
"spellcheck": false
}
]
}
JavaScript
Blockly.Blocks['example_multilinetextinput'] = {
init: function() {
this.appendDummyInput()
.appendField("multiline text input:")
.appendField(new Blockly.FieldMultilineInput('default text\n with newline character'),
'FIELDNAME');
}
};
Hàm khởi tạo phương thức nhập văn bản nhiều dòng lấy một giá trị không bắt buộc và một validator không bắt buộc. Giá trị sẽ chuyển thành một chuỗi. Nếu giá trị là null
hoặc undefined
, chuỗi trống sẽ được sử dụng.
Định nghĩa JSON cũng cho phép bạn đặt tuỳ chọn spellcheck.
Chuyển đổi tuần tự
JSON
JSON cho trường nhập văn bản nhiều dòng sẽ có dạng như sau:
{
"fields": {
"FIELDNAME": "line1\nline2"
}
}
Trong đó FIELDNAME
là một chuỗi tham chiếu đến trường nhập văn bản nhiều dòng và giá trị là giá trị áp dụng cho trường này. Giá trị này tuân theo các quy tắc tương tự như giá trị hàm khởi tạo.
XML
Mã XML cho trường nhập văn bản nhiều dòng sẽ có dạng như sau:
<field name="FIELDNAME">line1&#10;line2</field>
Trong đó thuộc tính name
của trường chứa một chuỗi tham chiếu đến trường nhập văn bản nhiều dòng và văn bản bên trong là giá trị áp dụng cho trường này. Giá trị văn bản bên trong tuân theo các quy tắc giống như giá trị hàm khởi tạo.
Tuỳ chỉnh
Kiểm tra lỗi chính tả
Bạn có thể dùng hàm setSpellcheck để đặt xem trường có kiểm tra lỗi chính tả văn bản nhập vào hay không.
Trường nhập văn bản có và không có kiểm tra chính tả
Tính năng kiểm tra chính tả được bật theo mặc định.
Điều này áp dụng cho từng trường riêng lẻ. Nếu bạn muốn sửa đổi tất cả các trường, hãy thay đổi thuộc tính Blockly.FieldMultilineInput.prototype.spellcheck_
.
Tạo trình xác thực mục nhập văn bản
Giá trị của trường nhập văn bản nhiều dòng là một chuỗi. Do đó, mọi trình xác thực đều phải chấp nhận một chuỗi và trả về một chuỗi, null
hoặc undefined
.
Dưới đây là ví dụ về một trình xác thực sẽ xoá tất cả ký tự "a" khỏi chuỗi:
function(newValue) {
return newValue.replace(/a/gm, '');
}