Make dropdown string field required in Sanity

12 replies
Last updated: Jan 21, 2026
How can I make a dropdown string field required?
AI Update

You can make a dropdown string field required by adding a validation rule to your field definition. Here's how:

defineField({
  name: 'category',
  type: 'string',
  options: {
    list: [
      {title: 'Technology', value: 'tech'},
      {title: 'Design', value: 'design'},
      {title: 'Business', value: 'business'}
    ]
  },
  validation: (rule) => rule.required()
})

The key is adding the validation property with rule.required(). This will prevent the document from being published until a value is selected from the dropdown.

You can also customize the error message if you want:

validation: (rule) => rule.required().error('Please select a category')

This works the same way for any string field with a dropdown (created using the options.list property). The validation system happens client-side in the Studio and will show an error indicator on the field if left empty.

Keep in mind that validation only runs in the Studio - if you're creating or updating documents via the API directly, you'll need to implement server-side validation separately.

Show original thread
12 replies

Sanity – Build the way you think, not the way your CMS thinks

Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.

Was this answer helpful?