我的页面正在验证我提交时不需要的字段,即使没有为此字段配置验证。
创建.cshtml
@model Lawtech.App.ViewModels.ProcessoViewModel
@{
ViewData["Title"] = "Novo processo";
}
<h3 style="padding-top: 10px">@ViewData["Title"] </h3>
<hr />
<div class="row">
<div class="col-md-12">
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="row">
<div class="form-group col-md-4">
<label asp-for="Numero" class="control-label"></label>
<input asp-for="Numero" class="form-control" />
<span asp-validation-for="Numero" class="text-danger"></span>
</div>
<div class="form-group col-sm-4">
<label asp-for="IdArea" class="control-label"></label>
<div class="input-group">
<select id="slcArea" asp-for="IdArea" class="form-control select2"></select>
<div class="input-group-btn">
<a asp-action="CreateArea" class="btn btn-info" style="border-radius:0 0.25rem 0.25rem 0" data-modal="">
<span class="fa fa-plus"></span>
</a>
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group col-md-6 mt-4">
<input …Run Code Online (Sandbox Code Playgroud) asp.net-mvc unobtrusive-validation asp.net-core-mvc asp.net-core
当我尝试在应用程序中实现ASP.net MVC 3 Unobtrusive Client Validations时,呈现的html不会生成由JQuery生成的span标记.
我只有以下渲染html,我使用JQuery模态弹出窗口作为我的部分视图的容器.
<input data-val="true" data-val-required="The City field is required." id="City" name="City" type="text" value="Seattle" />
Run Code Online (Sandbox Code Playgroud)
但是,当我使用不显眼的客户端验证而没有弹出JQuery Modal弹出时,它在同一个应用程序中正常工作如下.
<div class="editor-field">
<input data-val="true" data-val-required="The City field is required." id="City" name="City" type="text" value="Seattle" />
<span class="field-validation-valid" data-valmsg-for="City" data-valmsg-replace="true"></span>
</div>
Run Code Online (Sandbox Code Playgroud)
当我在JQuery Modal Popup中使用Unobtrusive Client验证时,是否需要实现任何功能?
JQuery Popup Code
$(document).ready(function () {
$('#actionPanelDialogs div').dialog({
autoOpen: false,
modal: true,
width: 700,
appendToBody: true
});
$('#actions a').click(function (event) {
event.stopPropagation();
event.preventDefault();
var link = $(this);
var action = link.attr('href');
var dialogDivId = link.attr('rel');
var …Run Code Online (Sandbox Code Playgroud) 我正在使用MVC 3不显眼的验证.当验证触发时,它将焦点设置在第一个无效控件上.我如何阻止这样做,我更习惯于Web表单,等效的是设置SetFocusOnError=false验证控件.
我按照这个优秀的帖子在我的mvc3应用程序中生成动态控件.
而现在我正在尝试为phonenumber领域进行客户端无障碍验证.所以我在'PhoneNumber'属性中添加了'Required'属性.
无阻碍验证适用于由服务器生成/呈现的语音字段(即,在页面加载上).但它不适用于通过javascript方法动态添加的字段.
我知道我需要编写一些jquery代码来添加规则/适配器或任何通知浏览器需要验证动态添加的phonenumber字段的内容.请帮我怎么办.
谢谢,M
我试着向我们求助
Html.ValidationMessageFor(m=>m.MyProperty,"The field is very much required");
但是..我的使用不引人注意我的验证,但由于某种原因,似乎一旦我使用customValidationMessage参数,该属性的不引人注意的验证"中断".
或者用更简单的术语表示......无论是否输入值,都会始终显示验证消息.它根本不会更新/切换.
该属性也用于RadioButtonFor ..所以完整的"代码"是:
@Html.RadioButtonFor(m=>m.Myproperty,"Value 1")
@Html.RadioButtonFor(m=>m.Myproperty,"Value 2")
@Html.ValidationMessageFor(m=>m.MyProperty,"Please select ine of the options")
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
asp.net-mvc message customvalidator radiobuttonfor unobtrusive-validation
我正在使用jQuery Unobtrusive Validation,并希望在提交表单之前做一些事情.我不想在成功验证后回发表单,而是希望向用户显示成功消息并重置相同的表单以添加其他数据.
在下面的代码中,它仅在表单无效时显示警报,如果有效则仅显示回发.
目前我的表单已提交,即使我想避免在这种情况下回发.
@model MyProject.ViewModels.CustomerViewModel
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#addCustomer").click(function () {
$("#myForm").validate();
if ($("#myForm").valid()) {
// This part doesn't get triggered
alert('yes valid');
//$.post(...post my data using ajax..)
alert('data posted successfully.');
//clear form to submit another data
clearForm();
return false;
}
else{
alert('no not valid');
return false;
}
<form id="myForm">
<div class="formPanel">
<label>Display Name</label>
@Html.EditorFor(model => model.CustomerName)
@Html.ValidationMessageFor(model => model.CustomerName)
</div>
<button class="btn btn-primary" id="addCustomer">Save</button>
</div>
</form>
Run Code Online (Sandbox Code Playgroud) asp.net-mvc jquery jquery-validate unobtrusive-validation asp.net-mvc-4
我需要使用Ajax.BeginForm用PartialView刷新div.我在MVC4中已经完成了十几次这样做,它完美无缺.在MVC5中,虽然不起作用:(
以下是我采取的步骤:
此_Test.cshtml视图的代码:
<p>From now on I'm gonna change my life: @DateTime.Now.ToString()</p>
Run Code Online (Sandbox Code Playgroud)编辑Views/Home/Index.cshtml视图:
@{
ViewBag.Title = "Home Page";
}
@using (Ajax.BeginForm("ChangeLife", "Home", null, new AjaxOptions() { UpdateTargetId = "test", HttpMethod = "Post" }, null))
{
<input type="submit" value="Start" />
}
<div id="test">
@Html.Partial("_Test")
</div>
Run Code Online (Sandbox Code Playgroud)把它放在你的HomeController中:
public ActionResult ChangeLife()
{
return this.PartialView("_Test");
}
Run Code Online (Sandbox Code Playgroud)如果单击Manage NuGet packages,默认情况下会安装jQuery和Microsoft jQuery Unobtrusive Validation.
ajax jquery partial-views unobtrusive-validation asp.net-mvc-5
我正在尝试使用远程验证和其他bool复选框字段
[Remote("IsStorageConnectionValid", "TenantManagement", AdditionalFields = "CreateStorage")]
public String StorageConnectionString { get; set; }
Run Code Online (Sandbox Code Playgroud)
验证码
public JsonResult IsStorageConnectionValid(string storageConnectionString, bool createStorage){
Run Code Online (Sandbox Code Playgroud)
它在击中验证器方面非常有效.但是,无论复选框的值如何,createStorage始终为true.如果我使用不是复选框的其他字段,则可以完美地提供它们.
复选框作为标准创建:
@Html.CheckBoxFor(m => m.CreateStorage)
Run Code Online (Sandbox Code Playgroud)
这是一个错误吗?或者我做错了吗?
asp.net-mvc unobtrusive-validation asp.net-mvc-5 asp.net-mvc-5.2
我正在使用jquery.validate v1.14.0JörnZaefferer
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
Run Code Online (Sandbox Code Playgroud)
我有一个项目,所有验证工作正常.如果未填充必填字段,则客户端验证会在表单汇总之前将其选中.
然而,我将所有这些形式移动到boostrap模态,并且页面的表单通过ajax调用在模态内动态加载.在此更改之后,我的客户端验证永远不会触发,我还注意到验证插件不像novalidate="novalidate"以前那样将标记添加到表单中.
这是我的代码简化
然后我使用以下jquery,因为我想捕获所有表单提交并执行一些额外的逻辑:
$(document).on('submit', '.formDetail', function (e) {
e.preventDefault();
//added this to see if it would throw error but it doesn't
var form = $(".formDetail");
form.validate();
//this is always true
if ($(this).valid()) {
$.ajax({
processData: false,
contentType: false,
data: new FormData(this),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function (data) {
//other logic
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
如果String1留空并且我提交并逐步执行javascript控制台'($(this).valid())'是alwasy true.如果我改变它($(".formDetail").valid()) 的结果是相同的,即总是如此true.
它也没有像我在切换到动态ajax模式窗体之前那样在HTTP POST之前在屏幕上显示错误消息.
我怎样valid()才能上班.单步执行代码时,我的控制台中没有javascript错误,并且 …
ajax jquery jquery-validate unobtrusive-validation bootstrap-modal
我正在尝试为MVC 6实现自定义jQuery Unobtrusive Validation属性.下面是IsValid()一个属性的实现,它查看类中的相邻属性并将其与编译时常量进行比较.
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
ValidationResult result = ValidationResult.Success;
// Simplest case, there is something in this field
if (!string.IsNullOrEmpty(value?.ToString()))
return result;
// Check relative field
try
{
// Grab the property referenced via reflection
var relativeProperty = validationContext.ObjectType.GetProperty(this._relativePropertyName);
// Compare the runtime value of that property to the Attribute initialized value
if (relativeProperty.GetValue(validationContext.ObjectInstance) == this._relativeValue)
{
// Fail if those 2 values are equal
result = new ValidationResult(this.ErrorMessageString);
}
} …Run Code Online (Sandbox Code Playgroud)