193 messaggi dal 12 febbraio 2016
Buongiorno a tutti,
ho una view di un sito web MVC con un controllo CheckBoxFor che tramite l'aggiunta dell'input hidden non mi funziona il checked.
Infatti, facebdo una prova incollando l'output html generato e togliendo il controllo hidden poi funziona correttamente.
Come posso risolvere?
Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Piero, non ho ben capito la questione e perciò non riesco a riprodurre il problema.

Io ho provato questo:
  • Creo una classe model tipo la seguente:
    namespace MioNamespace
    {
        public class Modello
        {
            public bool Selezionato { get; set; }
        }
    }
    
  • Rendo la view fortemente tipizzata sul modello appena creato
    @model MioNamespace.Modello
    
  • Nella view, rappresento una checkbox per la proprietà Selezionato
    @using (Html.BeginForm())
    {
        @Html.CheckBoxFor(m => m.Selezionato)
        <button>Invia</button>
    }
    
  • Creo un'action che riceva i dati del form
    [HttpPost]
    public ActionResult Index(Modello modello)
    {
      return View();
    }
    
  • Clicco il bottone per inviare il form
  • L'action riceve un'istanza di Modello: se la checkbox era stata selezionata, la proprietà Selezionato risulterà true, come è corretto che sia, altrimenti false.


Puoi fornire un esempio per riprodurre il problema?

ciao,
Moreno
Modificato da BrightSoul il 11 agosto 2019 19:18 -

Enjoy learning and just keep making
193 messaggi dal 12 febbraio 2016
Buongiorno Moreno,
grazie per la risposta.
L'output generato dal controllo CheckBoxFor è questo:
 <input checked="checked" data-val="true" data-val-required="Il campo Online è obbligatorio."
 id="Online" name="Online" type="checkbox" value="true" /><input name="Online" type="hidden" value="false" />



Io invece devo ottenere questo:

<label class="checkbox">
  <input type="checkbox" value="1">
  <i></i> Checkbox 1
</label>



La differenza sta nell'aggiunta del tag hidden che non fa funzionare correttamente (probabilmente tramite qualche regola css) il checkbox.

Grazie,
saluti
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Piero,
spiga bene che vuol dire "non fa funzionare correttamente il checkbox".
È invisibile? Non si riesce a cliccare? Non ricevi il valore lato action?

ciao,
Moreno

Enjoy learning and just keep making
193 messaggi dal 12 febbraio 2016
Rimane bloccato,
pur cliccando non compare/scompare la spunta.
11.886 messaggi dal 09 febbraio 2002
Contributi
Potrebbe esserci un altro elemento (es: div, span, ...) che va a sovrapporsi alla checkbox, anche se non lo vedi, e che perciò sta impedendo che i click avvengano sulla checkbox. Oppure potrebbe avere la regola CSS pointer-events: none. Ad ogni modo, come hai detto tu, penso che sia un problema di CSS e quindi andrebbe risolto sistemando la regola CSS responsabile.

Fai tasto destro sulla checkbox -> Esamina elemento e vedi se c'è qualcosa di invisibile che lo sovrasta.

ciao,
Moerno

Enjoy learning and just keep making
193 messaggi dal 12 febbraio 2016
Si, è questo tag:

<input name="Online" type="hidden" value="false" />


Questo è l'elemento che provoca il problema.
11.886 messaggi dal 09 febbraio 2002
Contributi

Questo è l'elemento che provoca il problema.


Quello che sto cercando di dire è non può essere il campo hidden la fonte del problema. Ho capito che se lo rimuovi tutto funziona bene, ma deve esserci un'altra causa alla radice. Hai provato a seguire i passi che ti avevo riportato nella prima risposta? Prova a creare un nuovo progetto, segui quei passi e ti convincerai del fatto che il campo hidden non c'entra niente, neanche se abiliti la validazione con jquery validation.

Il campo hidden è necessario in alcune situazioni (in particolare perché il browser non invia il valore della checkbox se non è stata selezionata dall'utente) e quindi non dovresti toglierlo.

Al momento siamo nella situazione in cui io non riesco a riprodurre il problema che hai segnalato. Puoi fornirmi i passi che mi portano a riprodurre il tuo problema da un progetto nuovo? Oppure: puoi fornire un progetto minimale in cui si possa osservare il problema?

ciao,
Moreno
Modificato da BrightSoul il 12 agosto 2019 11:29 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.