# Input Fields

{% hint style="info" %}
Add a `name` attribute to all input fields in your form.
{% endhint %}

### Text

This is the default value. Supports a single-line text field. Line-breaks are automatically removed from the input value.

```html
<input type="text" name="Full Name" />
```

### Textarea

The `<textarea>` element is often useful in a form, because it collects user inputs such as comments or reviews. A `<textarea>` can hold an unlimited number of characters, and the text renders in a fixed-width font.

```mathml
<textarea name="Review" rows="4" cols="50"></textarea>
```

### Select

The `<select>` element represents a control that provides a menu of options.

```html
<select name="Plan">
  <option value="Free">Free</option>
  <option value="Premium">Premium</option>
  <option value="Unlimited">Unlimited</option>
</select>
```

### Email

A field for editing an email address. Looks like a text input, but has validation parameters and relevant keyboard in supporting browsers and devices with dynamic keyboards.

```html
<input type="email" name="Email" />
```

### URL

A field for entering any URL. Looks like a text input, but has validation parameters and relevant keyboard in supporting browsers and devices with dynamic keyboards.

```html
<input type="url" name="Website" />
```

### Telephone

A control for entering a phone number. Displays a phone keypad in some devices with dynamic keypads such as smartphones.

```html
<input type="tel" name="Phone Number" />
```

### Number

A control for entering a number. Displays a spinner and adds default validation when supported. Displays a numeric keypad in some devices with dynamic keypads.

```html
<input type="number" name="Quantity" />
```

### Checkbox

A check box allowing single values to be selected/deselected.

```html
<input type="checkbox" name="Receive Emails" />
```

### Hidden

A control that is not displayed but whose value is submitted to the server. Used to add context about current user, and other values you want to be change.

```html
<input type="hidden" name="User" value="user@example.com"  />
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.betterform.io/reference/input-fields.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
