在试图找到两天的答案后,我在这里写这个问题.
基本上这是发生了什么.
我在viewmodel中有一个属性,如下所示
[Required(ErrorMessage = "Required Field")]
[Url(ErrorMessage="Please enter a valid url")]
[DisplayName("Website")]
public string web { get; set; }
Run Code Online (Sandbox Code Playgroud)
在视图中,我有这个
@Html.EditorFor(model => model.web, new { AutoCompleteType = "Disabled", autocomplete = "off" })
Run Code Online (Sandbox Code Playgroud)
现在的问题在于如何在客户端验证此字段的输入文本.该字段必须始终具有协议前缀,否则将变为无效.
我能解决这个问题的最佳方法是什么?
非常感谢
unobtrusive-validation asp.net-mvc-4 jquery-validation-engine
是否可以使用JQuery Validation来验证Bootstrap Datepicker?由于它没有暴露这个input领域,我无法让它验证.
示例:https://jsfiddle.net/Khrys/2rcr9j5s/
$.validator.setDefaults({
submitHandler: function() {
form.submit()
}
});
$().ready(function() {
var container = $('div.containerx');
$("#Form").validate({
ignore: [],
messages: {
StartTime: {
required: "Select the StartTime."
}
},
errorContainer: container,
errorLabelContainer: $("span", container),
highlight: function ( element, errorClass, validClass ) {
$('#StartTime').addClass( "btn-danger" );
$('#Filter').addClass( "btn-danger" );
},
unhighlight: function ( element, errorClass, validClass ) {
$('#StartTime').removeClass( "btn-danger" );
$('#Filter').removeClass( "btn-danger" );
}
});
});
Run Code Online (Sandbox Code Playgroud)
更新:
类btn-danger需要正确地应用于元素.
得到此错误:
Uncaught TypeError: Object [object Object] has no method 'live'
Run Code Online (Sandbox Code Playgroud)
从这个JavaScript和jQuery代码:
init: function(options) {
var form = this;
if (!form.data('jqv') || form.data('jqv') == null ) {
options = methods._saveOptions(form, options);
// bind all formError elements to close on click
$(".formError").live("click", function() {
//Getting error here:
//Uncaught TypeError: Object [object Object] has no method 'live'
});
}
return this;
};
Run Code Online (Sandbox Code Playgroud)
为什么方法live丢失了?
在我们的项目中,我们使用ValidationEngine,我们无法用另一个插件替换它.
我们的表单有十个输入,其中一些是可选的,但必须至少包含一个可选字段.
那么,在这种情况下如何验证输入?
样品:
form
input1
input2
intpu3
Run Code Online (Sandbox Code Playgroud)
input1:必需
必须存在input2和input3中的至少一个 - 如果两者都为空,则验证失败.
我正在尝试将jquery-validation添加到visual studio 2015中的项目.当我向bower.json添加"jquery-validation"时,我看到jquery-validation文件夹被添加到wwwroot/lib /但是没有dist /文件夹.
jquery-validation软件包看起来需要构建,但我无法看到如何在visual studio 2015中构建.右键单击grunt文件不会显示任务运行器资源管理器.
如果我使用命令窗口并尝试在wwwroot/lib/jquery-validation /文件夹中使用"npm install"和"grunt",则在"jscs:all"任务后出现错误:
Running "jscs:all" (jscs) task
Fatal error: Neither config file nor grunt options were defined
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v4.4.0
npm ERR! npm v2.14.20
npm ERR! code ELIFECYCLE
npm ERR! jquery-validation@1.15.1-pre prepublish: `grunt`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the jquery-validation@1.15.1-pre prepublish script 'grunt'.
npm ERR! This is most likely a problem with the …Run Code Online (Sandbox Code Playgroud) 我在我的网站上使用Twitter Bootstrap 2.1.0,我也使用jQuery Validation Engine 2.6.2插件,这些插件可以很好地协同工作.
在您尝试在模态中使用验证引擎之前:

注意我们如何得到一个水平滚动条,消息被切断了?
我想知道我能做些什么来解决这个问题?
我正在尝试使用此验证器:http://posabsolute.github.com/jQuery-Validation-Engine/ 我在页面有表单时加载它.但是我有几个页面有2个表单,两个都加载了ajax.所以,我需要在加载之前检查每个表单:是否加载了Validator.我怎么能检查这个?谢谢.
我正在尝试使用validationEngine插件制作自定义的错误消息
默认情况下,当您使用以下内容时:
<input value="" class="validate[required]" type="text" name="name" id="name"/>
Run Code Online (Sandbox Code Playgroud)
而你没有输入任何东西,你会得到消息:"*字段必需",这很好,但我想要的东西:"*名称要求"......
我只在我的.js文件中有这个:
$("#Form_Name").validationEngine();
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,我已经有几天试图完成这个...
我试图通过自定义函数验证jQuery验证引擎的子域的可用性.验证似乎正确发生,但如果.ajax请求返回200,则不显示alertText.我已添加Access-Control-Allow-Origin标头,可以在我的日志中看到请求成功完成.
我究竟做错了什么?
Javascript功能:
function validateDomain(field, rules, i, options) {
var url = "https://" + field.val() + ".example.com/";
$.ajax(url,
{
statusCode: {
200: function() {
//alert('name exists already');
return options.allrules.validate2fields.alertText;
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
表格字段:
<label class="required" for="signup[subdomain]">Subdomain<span>*</span></label>
<span>https://</span>
<input id="signup[subdomain]" name="signup[subdomain]" class="field field validate[required,funcCall[validateDomain]]" type="text">
<span>.example.com</span>
Run Code Online (Sandbox Code Playgroud) 我有一个输入字段,我试图添加自定义验证(需要取决于另一个字段).如果我放入必需的AND funcCall(),我可以看到返回两个错误.如果我只把funcCall放回去.我知道它正在进入函数和条件,因为我做了一个console.log()但由于某种原因,它似乎需要一个初始规则才能显示错误.
呼叫:
<input type="text" class="validate[funcCall[validatePassportRequired]]" id="form_register_passport_number" value="" name="passport_number" size="50">
Run Code Online (Sandbox Code Playgroud)
功能:
function validatePassportRequired(field, rules, i, options) {
if ($('#register_for').val()!='Local') {
return options.allrules.required.alertText;
}
}
Run Code Online (Sandbox Code Playgroud)
所以,如果我将呼叫更改为:
class="validate[required, funcCall[validatePassportRequired]]"
Run Code Online (Sandbox Code Playgroud)
我得到两个*这个字段是必需的
我是否必须与funcCall一起使用另一个验证规则?