> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/it/comandi-powershell/new-udform.md).

# New-UDForm

New-UDForm crea un modulo PowerShell Universal contenente controlli di input che riportano i propri valori quando si fa clic sul pulsante di invio.

### Sinossi

I moduli possono contenere qualsiasi insieme di controlli di input. Ciascuno dei controlli riporta il proprio valore al modulo quando si fa clic sul pulsante di invio.

### Sintassi

```powershell
New-UDForm [-Id <String>] [-OnValidate <Endpoint>] [-SubmitText <String>] [-CancelText <String>] [-ButtonVariant <String>] [-ClassName <String>] [-DisableSubmitOnEnter] [-Script <String>] [-OutputType <String>] [-ShowBackButton] [<CommonParameters>]

New-UDForm [-Id <String>] -Children <ScriptBlock> -OnSubmit <Endpoint> [-OnValidate <Endpoint>] [-OnProcessing <ScriptBlock>] [-OnCancel <Endpoint>] [-SubmitText <String>] [-CancelText <String>] [-ButtonVariant <String>] [-ClassName <String>] [-DisableSubmitOnEnter] [<CommonParameters>]

New-UDForm [-Id <String>] -OnSubmit <Endpoint> [-ButtonVariant <String>] [-ClassName <String>] -Schema <Hashtable> [-UiSchema <Hashtable>] [-FormData <Hashtable>] [-DisableSubmitOnEnter] [<CommonParameters>]
```

### Descrizione

Crea un nuovo modulo. I moduli possono contenere qualsiasi insieme di controlli di input. Ciascuno dei controlli riporta il proprio valore al modulo quando si fa clic sul pulsante di invio.

### Parametri

#### -Id

L'ID del componente. Per impostazione predefinita è un GUID casuale.

```
Required?                    false
Position?                    named
Default value                [Guid]::NewGuid().ToString()
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -Children

I controlli che compongono questo modulo. Può trattarsi di qualsiasi combinazione di controlli. I controlli di input riporteranno il proprio stato al modulo.

```
Required?                    true
Position?                    named
Default value
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -OnSubmit

Un blocco di script che viene eseguito quando il modulo viene inviato. È possibile restituire controlli da questo blocco di script e il modulo verrà sostituito dal blocco di script. La variabile $EventData conterrà una hashtable di tutti i campi di input e dei relativi valori.

```
Required?                    true
Position?                    named
Default value
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -OnValidate

Un blocco di script che convalida il modulo. Restituisce il risultato di una chiamata a New-UDFormValidationResult.

```
Required?                    false
Position?                    named
Default value
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -OnProcessing

Un blocco di script che viene chiamato quando il modulo inizia l'elaborazione. Il valore restituito da questo blocco di script deve essere un componente che visualizza una finestra di caricamento. Il blocco di script riceverà i dati correnti del modulo.

```
Required?                    false
Position?                    named
Default value
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -OnCancel

Un blocco di script che viene chiamato quando un modulo viene annullato. Utile per chiudere i moduli nelle finestre modali.

```
Required?                    false
Position?                    named
Default value
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -SubmitText

Testo da mostrare all'interno del pulsante di invio. Il valore predefinito è 'Submit'.

```
Required?                    false
Position?                    named
Default value                Submit
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -CancelText

Testo da mostrare all'interno del pulsante di annullamento. Il valore predefinito è 'Cancel'.

```
Required?                    false
Position?                    named
Default value                Cancel
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -ButtonVariant

Tipo di pulsante da visualizzare. Il valore predefinito è text. I valori validi sono contained, outlined, text.

```
Required?                    false
Position?                    named
Default value                text
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -ClassName

Una classe CSS da applicare al modulo.

```
Required?                    false
Position?                    named
Default value
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -Schema

Definisce un modulo basato su una hashtable di schema. Questa versione dei moduli è basata su react-jsonschema-form.

```
Required?                    true
Position?                    named
Default value
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -UiSchema

Utilizzato per modificare l'ordinamento dei campi (vedere la documentazione)

```
Required?                    false
Position?                    named
Default value                @{}
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -FormData

```
Required?                    false
Position?                    named
Default value                @{}
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -DisableSubmitOnEnter

Disabilita la funzionalità per cui la pressione di Invio in una casella di testo invia il modulo di cui fa parte.

```
Required?                    false
Position?                    named
Default value                False
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -Script

Utilizzato per generare automaticamente moduli in base agli script presenti nel proprio ambiente PowerShell Universal. I moduli di script generano componenti di input in base al blocco param. I moduli di script supportano automaticamente lo stato di avanzamento e il feedback.

```
Required?                    false
Position?                    named
Default value                None
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -OutputType

Il tipo di output da restituire dallo script. I valori validi sono: "Text", "Table"

```
Required?                    false
Position?                    named
Default value                Text
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### -ShowBackButton

Mostra un pulsante Indietro dopo l'invio del modulo. Viene utilizzato solo per i moduli di script.

```
Required?                    false
Position?                    named
Default value                False
Accept pipeline input?       false
Aliases
Accept wildcard characters?  false
```

#### Parametri comuni

Questo cmdlet supporta i parametri comuni: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable e OutVariable. Per maggiori informazioni, veda [about\_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216).

### Output

### Esempi

#### Esempio 1: base

```powershell
New-UDForm -Id 'form1' -Content {
    New-UDTextbox -Id 'form1Textbox' -Label 'Name'
} -OnSubmit {
    Show-UDToast -Message ($EventData.form1Textbox)
}
```

Crea un modulo di base.

#### Esempio 2: convalida

```powershell
New-UDForm -Id 'form2' -Content {
    New-UDTextbox -Id 'form2Textbox' -Label 'Name'
} -OnSubmit {
    Show-UDToast -Message ($EventData.form2Textbox)
} -OnValidate {
    if ($EventData.form2Textbox -eq 'Bob') {
        New-UDValidationResult -ValidationError 'Bob is not allowed'
    }
    else {
        New-UDValidationResult -Valid
    }
}
```

Crea un modulo con convalida.

#### Esempio 3: elaborazione

```powershell
New-UDForm -Id 'form3' -Content {
    New-UDTextbox -Id 'form3Textbox' -Label 'Name'
} -OnSubmit {
    Start-Sleep -Seconds 5
    Show-UDToast -Message ($EventData.form3Textbox)
} -OnProcessing {
    New-UDCard -Title 'Processing' -Content {
        New-UDProgress
    }
}
```

Crea un modulo con una finestra di elaborazione.

#### Esempio 4: annullamento

```powershell
New-UDForm -Id 'form4' -Content {
    New-UDTextbox -Id 'form4Textbox' -Label 'Name'
} -OnSubmit {
    Show-UDToast -Message ($EventData.form4Textbox)
} -OnCancel {
    Show-UDToast -Message 'Form was cancelled'
}
```

Crea un modulo con un pulsante di annullamento.

#### Esempio 5: testo di invio e annullamento

```powershell
New-UDForm -Id 'form5' -Content {
    New-UDTextbox -Id 'form5Textbox' -Label 'Name'
} -OnSubmit {
    Show-UDToast -Message ($EventData.form5Textbox)
} -SubmitText 'Save' -CancelText 'Close' -OnCancel {
    Show-UDToast -Message 'Form was cancelled'
}
```

Crea un modulo con testo di invio e annullamento personalizzato.

#### Esempio 6: variante del pulsante

```powershell
New-UDForm -Id 'form6' -Content {
    New-UDTextbox -Id 'form6Textbox' -Label 'Name'
} -OnSubmit {
    Show-UDToast -Message ($EventData.form6Textbox)
} -ButtonVariant 'contained'
```

Crea un modulo con una variante di pulsante contained.

#### Esempio 7: nome della classe

```powershell
New-UDForm -Id 'form7' -Content {
    New-UDTextbox -Id 'form7Textbox' -Label 'Name'
} -OnSubmit {
    Show-UDToast -Message ($EventData.form7Textbox)
} -ClassName 'my-form'
```

Crea un modulo con un nome di classe CSS personalizzato.

#### Esempio 8: schema

```powershell
New-UDForm -Id 'form8' -Schema @{
    title = "Test Form"
    type = "object"
    properties = @{
       name = @{
           type = "string"
       }
       age = @{
           type = "number"
       }
    }
} -OnSubmit {
    Show-UDToast -Message ($EventData.name)
    Show-UDToast -Message ($EventData.age)
}
```

Crea un modulo con uno schema. È possibile trovare maggiori informazioni su JSON Schema qui: <https://rjsf-team.github.io/react-jsonschema-form/docs/>

#### Esempio 9: schema UI

```powershell
New-UDForm -Id 'form9' -Schema @{
    title = "Test Form"
    type = "object"
    properties = @{
       name = @{
           type = "string"
       }
       age = @{
           type = "number"
       }
    }
} -uiSchema @{
	"ui:order" = @('age','name')
} -FormData @{ Name = "adam"; Age = 38 } -OnSubmit {
    Show-UDToast -Message ($EventData.name)
}
```

Crea un modulo con uno schema e uno schema UI. È possibile trovare maggiori informazioni su JSON Schema qui: <https://rjsf-team.github.io/react-jsonschema-form/docs/>

#### Esempio 10: script

```powershell
New-UDForm -Id 'form10' -Script "Script1.ps1" -OutputType "Table"
```

Crea un modulo da uno script. I parametri dello script definiranno il modulo. L'output dello script verrà visualizzato in una tabella.

#### Esempio 11

```powershell
New-UDForm -Id 'form11' -Content {
   New-UDTextbox -Id 'form11Textbox' -Label 'Name'
} -OnSubmit {
    Show-UDToast -Message ($EventData.form11Textbox)
}
New-UDButton -Text "A submit button outside the form" -OnClick {
    Invoke-UDForm -Id "form11"
}

Invoke-UDForm|Creates a form with a submit button outside the form.
```

#### Esempio 12

```powershell
New-UDForm -Id 'form12' -Content {
   New-UDTextbox -Id 'form12Textbox' -Label 'Name'
} -OnSubmit {
    Show-UDToast -Message ($EventData.form12Textbox)
} -OnValidate {
    if ($EventData.form12Textbox -eq 'Hello') {
        New-UDValidationResult -Valid
    }
    else {
        New-UDValidationResult -ValidationError "Name must be 'Hello'"
    }
}
New-UDButton -Text "Validate form" -OnClick {
    Test-UDForm -Id "form12"
}

Test-UDForm|Creates a form with a validate button outside the form.
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/it/comandi-powershell/new-udform.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
