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

Trường nhập văn bản lưu trữ một chuỗi dưới dạng giá trị và một chuỗi dưới dạng 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 này 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

Một khối có nhãn "text input" (nhập văn bản) và một trường nhập văn bản được đặt thành "default text" (văn bản mặc định).

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

Cùng một khối có trường đang được chỉnh sửa.

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

Khối tương tự sau khi được thu gọn. Thành phần này có nhãn "text input: default text" (văn bản nhập: văn bản mặc định) và cạnh phải lởm chởm để cho biết thành phần này đang 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 sẽ nhận một giá trị không bắt buộc và một trình xác thực không bắt buộc. Giá trị phải được truyền vào một chuỗi. Nếu giá trị này là null hoặc undefined, thì một 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 (kiểm tra chính tả).

Tuần tự hoá và XML

JSON

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

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

Trong đó FIELDNAME là một chuỗi tham chiếu đến trường nhập văn bản và giá trị là giá trị cần áp dụng cho trường đó. Giá trị này tuân theo các quy tắc giống như giá trị hàm khởi tạo.

XML

Mã 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 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. 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ể sử dụng hàm setSpellcheck để đặt xem trường có kiểm tra chính tả văn bản đầu vào hay không.

Trường nhập văn bản có và không có tính năng kiểm tra chính tả

Ảnh GIF động hiển thị hai khối có các trường nhập văn bản. Khối đầu tiên đã bật tính năng kiểm tra chính tả và các từ sai chính tả được gạch chân bằng một đường màu đỏ gợn sóng. Khối thứ hai tắt tính năng kiểm tra chính tả và các từ bị sai chính tả không được gạch chân.

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. 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 dữ liệu 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ả ký tự "a" khỏi chuỗi:

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

Ảnh GIF động cho thấy một trường nhập văn bản đang được xác thực. Khi người dùng nhập &quot;bbbaaa&quot; và nhấp vào nơi khác, trường này sẽ thay đổi thành &quot;bbb&quot;.