希望有人能提供帮助,我一直在疯狂地试图解决这个问题。 我正在研究MVC 5应用程序。 我在viewmodel中创建了一个表单和表。以下是我正在使用的2个文本框输入。 Jquery验证是在step = .10的标记输入框上放置验证规则,即使我没有专门设置规则并且此规则不起作用。文本框为许多输入提供错误,包括(1.1,1.2,1.3,但输入1.6遍。)错误是“请指定0.1的倍数” 另一个奇怪的是,如果从localhost调试运行,这可以正常工作,但是当我发布到托管服务器时,它根本不起作用。 soldbox的10步工作正常,没有验证。
任何想法??
伊恩
@Html.TextBox("markup" + @item.ID, (item.markup == 0 ? new decimal(1.0) : item.markup), new { data_id = item.ID, style = "width:75px", @class = "markupbox form-control", @type = "number", @min = 0, @step = .10 })
@Html.TextBox("sold" + @item.ID, new decimal(0), new { data_id = item.ID, style = "width:75px", @class = "soldbox form-control", @type = "number", @min = 0, @max = 100, @step = 10 })
//JAVA SNIPPET
$('#livecartitems').validate({
errorClass: "text-danger"
});
$('.soldbox').each(function () {
$(this).rules('add', {
min: 0,
max: 100,
messages: {
min: "must be >= 0",
max: "must be <= 100"
}
})
$(this).rules('remove', 'step');
});
});
// EDITTED JAVASCRIPT - 仍然不起作用
$('#livecartitems').validate({
errorClass: "text-danger"
});
$('.markupbox').rules('remove', 'step');
我刚尝试了一个非常简单的例子...... 相同的行为。 1.5不起作用,但1.6次传球。很奇怪。我接下来将尝试重新加载JS文件或将它们指向google托管的JS脚本。
<form id="testform">
@Html.TextBox("markup", new decimal(1.0), new { @style = "width:75px", @class = "markupbox form-control", @type = "number", @min = 0, @step = .10 })
</form>
<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>
<script type="text/javascript">
$('#testform').validate({
errorClass: "text-danger"
});
</script>
答案 0 :(得分:0)
我相信jQuery Validate插件会根据您的标记和输入类型自动应用规则。您尝试使用$(this).rules('remove', 'step');
删除该规则,但是您将其应用于错误的输入,因为它包含在$('.soldbox').each(function () { ... }
中。
$('.markupbox').rules('remove', 'step');
将解决此问题(将其添加到范围之外)。
至于不在生产中工作,没有足够的细节。确保jQuery和Validate插件正确加载并检查控制台是否有错误。
编辑:在JSFiddle中进行一些测试后,我能够复制您的步骤错误(&lt; 1.5无效)。看看this question为什么会发生这种情况。
但是,我可以使用step
方法删除.rules('remove', 'step')
检查。初始化插件时,您还可以通过规则step: false
。
Your best bet is to create a custom validator(例如,float-step
并检查其中的值,如果您确实需要验证步长。