我在搜索表单中使用了2个相同的输入。我想控制数据输入。例如,用户在任何时间间隔内输入时间或价格。第二个值必须大于第一个值。 如何让用户无法向第二个字段输入更大的值?
约会:
@Html.TextBox( "date1", string.Empty, new { @class = "dateClass", type_datepicker = "true", @id = "datepicker" } )
@Html.TextBox( "date2", string.Empty, new { @class = "dateClass", type_datepicker = "true", @id = "datepicker2" } )
和价格:
@Html.TextBox( "price1", string.Empty, new { @class = "priceClass" } )
@Html.TextBox( "price2", string.Empty, new { @class = "priceClass" } )
date1 和 date2 是字符串, price1 和 price2 是双倍的。抱歉我的英文不好..
答案 0 :(得分:1)
您需要对此进行调整,以使其匹配您的后端代码返回的任何内容
您可以在此处选择一些选项,您可以在用户提交表单时或用户停止输入时进行验证。提交非常简单
if ($('#second').val() > $('#first').val()){
return false;
}
比较日期,check this out
或者您可以在用户停止输入时执行此操作,这要归功于this great answer您可以执行此操作
$(document).ready(function(){
var typingTimer; //timer identifier
var doneTypingInterval = 1000; //time in ms, 1 second for example
//on keyup, start the countdown
$('#second').keyup(function(){
typingTimer = setTimeout(doneTyping, doneTypingInterval);
});
//on keydown, clear the countdown
$('#second').keydown(function(){
clearTimeout(typingTimer);
});
//user is "finished typing," do something
function doneTyping () {
if ($('#second').val() > $('#first').val()){
alert('cannot do that'); //take whatever action you need here
}
}
});
此外,对于datepickers,如果您使用的是jQuery UI datepicker,则可以选择禁用某些日期范围,这样您就可以使用它来禁用早于第一个datepicker值的任何内容(但同样是只是客户端检查,如果这对您的应用程序至关重要,您将不得不使用C#或您正在使用的任何语言进行后端检查)