【发布时间】:2015-01-12 00:35:17
【问题描述】:
我正在尝试使用 jQuery 添加一些验证。我有一个现有号码,当用户输入一个新号码时,它必须大于现有号码。
这是我的代码,但它给出了一条错误消息。
我现有的number.MonoReading:
<div>
@Html.LabelFor(m => m.MonoReading)
@Html.TextBoxFor(m => m.MonoReading, new {@id="InitialMonoReading", @class = "form", @readonly = "readonly" })
@Html.ValidationMessageFor(m => m.MonoReading)
</div>
这是我将输入新数据的文本框。 MonoReading2(必须大于MonoReading):
<div>
@Html.LabelFor(m => m.MonoReading2)
@Html.TextBoxFor(m => m.MonoReading2, new { @id="newMonoReading", @class = "form-add" })
<div id="MonoErrorMessage"></div>
@*@Html.ValidationMessageFor(m => m.MonoReading2, new { @id="MonoErrorMessage" })*@
</div>
我已经尝试过了,这就是我目前所做的:
<script type="text/javascript">
$(document).ready(function () {
$("#newMonoReading").focus(function () {
var str = "";
var initialMonoReading = $('#InitialMonoReading').val();
var newMonoReading = $('#newMonoReading').val()
if(newMonoReading < initialMonoReading){
$('#MonoErrorMessage').text("New Readings must be less than existing");
}
else{
$('#MonoErrorMessage').text("");
}
})
.change();
});
</script>
这样做的问题是它根本没有效果。它有效,但它非常不整洁。当我点击文本框时,即使我没有输入任何内容,它也会立即出现。它也没有那么快。
还有其他方法可以做到这一点吗?
【问题讨论】:
-
什么意思“根本没有效果”?
-
它可以工作,但它非常不整洁。当我单击文本框时,即使我没有输入任何内容,它也会立即出现。它也没有那么快
-
好吧,您可以将事件侦听器更改为
.blur(或.change)...老实说,我认为速度不是问题!如果它确实重要,只需缓存您的元素。 -
同样,当我输入一个较低的值时,错误就会出现,当我输入一个较高的值时,错误仍然存在!!它应该是什么而不是模糊
-
.focus应该是.blur或.change。
标签: javascript jquery .net validation input