Trường nhập văn bản

Trường nhập văn bản lưu trữ một chuỗi làm giá trị và một chuỗi làm văn bản. 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 đó có thể là bất kỳ chuỗi nào được nhập vào trình chỉnh sửa.

Trường nhập văn bản

Trường nhập văn bản với trình chỉnh sửa đang mở

Trường nhập văn bản trên khối đã thu gọn

dựa trên xu hướng

JSON

{
  "type": "example_textinput",
  "message0": "text input: %1",
  "args0": [
    {
      "type": "field_input",
      "name": "FIELDNAME",
      "text": "default text",
      "spellcheck": false
    }
  ]
}

JavaScript

Blockly.Blocks['example_textinput'] = {
  init: function() {
    this.appendDummyInput()
        .appendField("text input:")
        .appendField(new Blockly.FieldTextInput('default text'),
            'FIELDNAME');
  }
};

Hàm khởi tạo phương thức nhập văn bản 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ự và XML

JSON

JSON cho trường nhập văn bản sẽ có dạng như sau:

{
  "fields": {
    "FIELDNAME": "text"
  }
}

Trong đó FIELDNAME là một chuỗi tham chiếu đến một trường nhập văn bản và giá trị là giá trị áp dụng cho trường đó. 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

XML cho trường nhập văn bản sẽ có dạng như sau:

<field name="FIELDNAME">text</field>

Trong đó thuộc tính name của trường chứa một chuỗi tham chiếu đến một trường nhập văn bản 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 tương tự 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.FieldTextInput.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 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/g, '');
}