.Net Mvc 3 Trigger (altro che il pulsante di invio) Discreto Convalida

Quello che vorrei

Vorrei innescare la validazione lato client, a mio avviso, con un evento della mia scelta. Potrebbe essere “onblur’ forse un altro pulsante, ma qualcosa di diverso sul pulsante invia.

Collegamenti Pertinenti

Come attivare la convalida senza l’utilizzo di un pulsante di invio

L’applicazione di discreto jquery validation di contenuti dinamici in ASP.Net MVC

Quello che ho cercato

Data una vari listener di eventi, ho sparato i seguenti metodi senza fortuna:

$(selector).validate();

$(selector).valid();

$.validator.unobtrusive.parseDynamicContent(selector);

$.validator.unobtrusive.parse($(selector));

Riepilogo

Quindi ho bisogno di convalida lato client a fuoco su un determinato evento (diversa da presentare) e mostrano i corrispondenti messaggi di validazione. Io non sento come uno di Markup/sintassi è necessario come client di convalida incendi a presentare e a tutti i corrispondenti messaggi di validazione mostra come previsto.

 

2 Replies
  1. 56

    $('form').valid() dovrebbe funzionare. Proviamo a esemplificare.

    Modello:

    public class MyViewModel
    {
        [Required]
        public string Foo { get; set; }
    }

    Controller:

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View(new MyViewModel());
        }
    }

    Vista:

    @model MyViewModel
    
    <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
    
    @using (Html.BeginForm())
    {
        @Html.LabelFor(x => x.Foo)
        @Html.EditorFor(x => x.Foo)
        @Html.ValidationMessageFor(x => x.Foo)
    }
    
    <div id="validate">Hover here to trigger validation</div>
    
    <script type="text/javascript">
        $('#validate').hover(function () {
            $('form').valid();
        });
    </script>
    • Questo ha funzionato un piacere per me, anche se ho avuto ancora più successo quando ho cambiato il EditorFor per TextBoxFor in modo che io possa dare una classe css.
  2. 0

    Validazione manuale di messaggi personalizzati iniettato direttamente in HTML

    @{using (Html.BeginForm("addBuyOnlinepostA", "BuyOnline", FormMethod.Post, new { @enctype = "multipart/form-data", @id = "form1" }))
      {
    
        @Html.ValidationSummary(true)
    
        <div class="row">
            <div class="col-sm-10">
                Product Qty
                <input class="inputs" required type="number" id="price" name="price" placeholder="Enter Price in AED"
                    data-val="true" data-val-required="Please enter a value" data-val-regex="Please enter a valid number."
                    data-val-regex-pattern="\d{1,20}" />
                <span class="field-validation-valid" data-valmsg-for="price" data-valmsg-replace="true"
                    style="color: Red;"></span>
            </div>
        </div>   
    
    
    
        <input type="button" onclick="$('form').valid()" />
    
      }
    }

Lascia un commento