Asp.net mvc 3 .Net Mvc 3触发器(提交按钮除外)不引人注目的验证

Asp.net mvc 3 .Net Mvc 3触发器(提交按钮除外)不引人注目的验证,asp.net-mvc-3,client-side-validation,unobtrusive-validation,Asp.net Mvc 3,Client Side Validation,Unobtrusive Validation,我想要什么 我想用我选择的事件在我的视图中触发客户端验证。它可能是“onblur”,可能是另一个按钮,但不是提交按钮 相关链接 我尝试过的 给定一个不同的事件侦听器,我很幸运地触发了以下方法: $(选择器).validate() $(选择器).valid() $.validator.unobtrusive.parseDynamicContent(选择器) $.validator.unobtrusive.parse($(选择器)) 摘要 因此,我需要客户端验证来触发给定事件(提交时除外),并显

我想要什么

我想用我选择的事件在我的视图中触发客户端验证。它可能是“onblur”,可能是另一个按钮,但不是提交按钮

相关链接

我尝试过的

给定一个不同的事件侦听器,我很幸运地触发了以下方法:

$(选择器).validate()

$(选择器).valid()

$.validator.unobtrusive.parseDynamicContent(选择器)

$.validator.unobtrusive.parse($(选择器))

摘要

因此,我需要客户端验证来触发给定事件(提交时除外),并显示相应的验证消息。我觉得任何标记/Razor语法都不是必需的,因为客户端验证在提交时启动,并且所有相应的验证消息都按预期显示

$('form')。valid()
应该可以工作。让我们举例说明

型号:

public class MyViewModel
{
    [Required]
    public string Foo { get; set; }
}
控制器:

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

@model MyViewModel
@使用(Html.BeginForm())
{
@LabelFor(x=>x.Foo)
@EditorFor(x=>x.Foo)
@Html.ValidationMessageFor(x=>x.Foo)
}
将鼠标悬停在此处以触发验证
$(“#验证”)。悬停(函数(){
$('form').valid();
});

直接注入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()" />

  }
}
@{使用(Html.BeginForm(“addBuyOnlinepostA”,“BuyOnline”,FormMethod.Post,new{@enctype=“multipart/form data”,@id=“form1”}))
{
@Html.ValidationSummary(true)
产品数量
}
}

我也发布了一些有用的东西[here][1][1]:这对我来说很有用,不过当我将EditorFor改为TextBoxFor时,我取得了更大的成功,这样我就可以给它一个css类了。
@{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()" />

  }
}