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

Trường nhập dữ liệu văn bản lưu trữ một chuỗi dưới dạng giá trị và một chuỗi làm văn bản. giá trị của nó luôn là một chuỗi hợp lệ, trong khi văn bản của nó có thể là bất kỳ chuỗi nào được nhập vào cho trình chỉnh sửa của công cụ đó.

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 để nhập văn bản sẽ lấy một giá trị không bắt buộc và một giá trị không bắt buộc trình xác thực. Giá trị phải truyền đến . Nếu giá trị là null hoặc undefined thì chuỗi trống sẽ được sử dụng.

Định nghĩa JSON cũng cho phép bạn đặt tuỳ chọn kiểm tra lỗi chính tả.

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 dữ liệu văn bản và giá trị là giá trị áp dụng cho trường. Giá trị tuân theo các quy tắc giống 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 trường hợp thuộc tính name của trường chứa chuỗi tham chiếu đến giá trị 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. Bên trong giá trị văn bản 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 chính tả

Chiến lược phát hành đĩa đơn setSpellcheck có thể dùng để đặt xem trường có kiểm tra lỗi chính tả đối với văn bản đầu vào hay không.

Các trường nhập văn bản có và không có lỗi kiểm tra lỗi 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 các 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, vì vậy, 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ề trình xác thực xoá tất cả 'a' ký tự của chuỗi:

function(newValue) {
  return newValue.replace(/a/g, '');
}