Một cách để đảm bảo chất lượng dữ liệu là thêm các ràng buộc vào các trường dữ liệu trong biểu mẫu. Ràng buộc giúp ngăn người dùng nhập các câu trả lời không hợp lệ hoặc không thể xảy ra. Ví dụ: khi hỏi về thu nhập của một người, bạn muốn tránh các giá trị phi thực tế như số âm hoặc giá trị cực cao. Thêm ràng buộc dữ liệu rất dễ thực hiện. Chỉ cần làm theo các bước dưới đây:

  1. Thêm một cột mới có tên là “constraint” vào biểu mẫu của bạn.
  2. Trong cột “constraint”, nhập công thức chỉ định giới hạn cho câu trả lời.

Ví dụ

Hãy xem xét ví dụ thêm ràng buộc cho thu nhập của một người. Ràng buộc yêu cầu thu nhập phải nằm trong khoảng từ 0$ đến 1.000.000$. Đây là cách thiết lập ràng buộc:

nameconstraint
Income. >= 0 & . <= 1000000

Trong ví dụ trên, dấu “.” trong công thức tham chiếu lại biến câu hỏi, đại diện cho giá trị do người dùng nhập cho câu hỏi “Income”. Ràng buộc . >= 0 && . <= 1000000 đảm bảo thu nhập được nhập lớn hơn hoặc bằng 0 và nhỏ hơn hoặc bằng 1.000.000.

Ràng buộc cứng (Hard constraint)

Ràng buộc cứng chặn hoàn toàn việc gửi biểu mẫu nếu giá trị nhập vào không thỏa mãn biểu thức. Người điều tra không thể tiếp tục cho đến khi nhập giá trị hợp lệ.

Để thêm ràng buộc cứng, nhập biểu thức vào cột constraint. Tùy chọn thêm thông báo dễ đọc trong constraint_message:

typenamelabelconstraintconstraint_message
integerageTuổi người trả lời. > 0 and . <= 120Tuổi phải nằm trong khoảng 1 đến 120
decimaltemperatureNhiệt độ cơ thể (°C). >= 35 and . <= 42Nhiệt độ phải nằm trong khoảng 35°C đến 42°C
textphoneSố điện thoạiregex(., '^[0-9]{10}$')Nhập số điện thoại 10 chữ số

Nhiều điều kiện

Kết hợp các điều kiện với and / or:

  . >= 0 and . <= 100
  
  . = 'yes' or . = 'no'
  

Dùng regex() để xác thực mẫu

Hàm regex(value, pattern) kiểm tra một giá trị với biểu thức chính quy:

typenamelabelconstraintconstraint_message
textemailĐịa chỉ emailregex(., '^[^@]+@[^@]+\.[^@]+$')Nhập địa chỉ email hợp lệ
textzip_codeMã bưu chínhregex(., '^[0-9]{5}$')Nhập mã bưu chính 5 chữ số

Tham chiếu các trường khác trong ràng buộc

Dùng ${fieldname} để tham chiếu giá trị từ câu hỏi khác:

typenamelabelconstraintconstraint_message
integerend_yearNăm kết thúc. >= ${start_year}Năm kết thúc phải sau năm bắt đầu
decimalloan_repaidSố tiền đã trả. <= ${loan_amount}Không thể trả nhiều hơn số tiền vay

Cảnh báo mềm (Soft alert)

Cảnh báo mềm (còn gọi là ràng buộc mềm hoặc cảnh báo) thông báo cho người điều tra rằng một giá trị trông bất thường, nhưng vẫn cho phép tiếp tục. Điều này hữu ích khi một giá trị về mặt kỹ thuật là hợp lệ nhưng về mặt thống kê là khó xảy ra.

rtSurvey hỗ trợ cảnh báo mềm qua cột constraint với cách tiếp cận constraint_type đặc biệt, hoặc qua appearance soft kết hợp với trường note.

Mẫu phổ biến nhất là dùng note với biểu thức relevant gắn cờ giá trị đáng ngờ, kết hợp với câu hỏi acknowledge để xác nhận:

typenamelabelrelevant
integerchildrenSố trẻ em
notechildren_warningCảnh báo: Bạn đã nhập ${children} trẻ em. Vui lòng xác nhận lại.. > 15
triggerchildren_confirmXác nhận số trẻ em là chính xác${children} > 15

Cảnh báo mềm chỉ với constraint_message

Để có cảnh báo mềm đơn giản hơn, bạn có thể đặt ràng buộc cảnh báo ở giá trị cực đoan nhưng vẫn cho phép phạm vi rộng:

typenamelabelconstraintconstraint_message
integerchildrenSố trẻ em. >= 0 and . <= 30Giá trị này có vẻ rất cao. Vui lòng xác minh lại.
Trang này có hữu ích không?