Trường nhập văn bản nhiều dòng

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&amp;#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, '');
}