it-swarm.com.de

.Net Mvc 3-Auslöser (außer Schaltfläche "Senden") Unauffällige Überprüfung

Was ich gerne hätte

Ich möchte die clientseitige Validierung in meiner Ansicht mit einem Ereignis meiner Wahl auslösen. Es könnte "onblur" sein, vielleicht eine andere Schaltfläche, aber etwas anderes als die Schaltfläche "Senden". 

relevante Links

So lösen Sie die Validierung aus, ohne einen Senden-Button zu verwenden

Anwenden der unauffälligen Jquery-Validierung auf dynamischen Inhalt in ASP.Net MVC

Was ich probiert habe

Bei einem verschiedenen Ereignis-Listener habe ich die folgenden Methoden ohne Erfolg abgefeuert: 

$(selector).validate();

$(selector).valid();

$.validator.unobtrusive.parseDynamicContent(selector);

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

Zusammenfassung

Ich brauche also eine clientseitige Validierung, um ein bestimmtes Ereignis auszulösen (außer beim Senden) und die entsprechenden Validierungsnachrichten anzuzeigen. Ich glaube nicht, dass eine der Markup/Razor-Syntax notwendig ist, da die Client-Validierung beim Senden ausgelöst wird und alle entsprechenden Validierungsnachrichten wie erwartet angezeigt werden. 

30
Justin Soliz

$('form').valid() sollte funktionieren. Lassen Sie uns dies beispielhaft erläutern.

Modell:

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

Regler:

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

Aussicht:

@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>
56
Darin Dimitrov

Manuelle Validierung von benutzerdefinierten Nachrichten, die direkt in HTML eingefügt werden

@{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()" />

  }
}
0
Arun Prasad E S