jsonschemareact-jsonschema-forms

How to "lock" a field value based on default value in a react Json Schema form?


We have a json schema that includes a field, for which we want to control the value via the schema (rather than having the user specify the value).

We can set a default value - but this is simply overwritten by the formData that the user parses.

Is there a way to "lock" the field value to the default value provided in the schema, ensuring that the formData is updated with the schema-specified value?

{
 "meta": {
      "title": "SCHEMA REVISION",
      "type": "object",
      "properties": {
        "rev": {
          "title": "We want to lock the below default value via the schema",
          "type": "string",
          "default": "10.00"
        }
      }
    }
}

Solution

  • Sorry, you cannot do this using the schema alone. It's not designed to be used for forms, so it doesn't have that functionality.

    It sounds like you want a read-only field. The documentation for react JSON Schema form supports this: https://github.com/mozilla-services/react-jsonschema-form#read-only-fields

    The ui:readonly uiSchema directive will mark all child widgets from a given field as read-only.

    Note: the uiSchema is in addition to your JSON Schema.