我试图限制生日的日期,月份和年份的不同最小和最大输入。但是,函数中的“ this”似乎有问题。我可以知道编写此函数的正确和好方法是什么吗?我尝试了箭头功能,但无法正常工作。我应该使用绑定吗?非常感谢!
$(document).ready(function () {
var minMonth = 1;
var maxMonth = 12;
var minDay=1;
var maxDay=31;
var minYear=1900;
var maxYear=2019;
function minMaxDob(minDob, maxDob){
if($(this).val() > maxDob){
$(this).val(maxDob);
}
if($(this).val() < minDob){
$(this).val(minDob);
}
}
$("#dob_month").keyup(function(){
minMaxDob(minMonth,maxMonth);
});
$("#dob_day").keyup(function(){
minMaxDob(minDay,maxDay);
});
$("#dob_year").keyup(function(){
minMaxDob(minYear,maxYear);
});
});
最佳答案
您必须像下面那样将jQuery对象传递给minMaxDob,您必须这样做,因为“ this”是指当前执行的函数,因为您正在调用辅助函数“ this”不再是指DOM对象,而是函数minMaxDob:
$(document).ready(function () {
var minMonth = 1;
var maxMonth = 12;
var minDay=1;
var maxDay=31;
var minYear=1900;
var maxYear=2019;
function minMaxDob(jqObj, minDob, maxDob){
if(jqObj.val() > maxDob){
jqObj.val(maxDob);
}
if(jqObj.val() < minDob){
jqObj.val(minDob);
}
}
$("#dob_month").keyup(function(){
minMaxDob($(this),minMonth,maxMonth);
});
$("#dob_day").keyup(function(){
minMaxDob($(this),minDay,maxDay);
});
$("#dob_year").keyup(function(){
minMaxDob($(this),minYear,maxYear);
});
});
关于javascript - 如何将keyup()函数正确地应用于具有不同输入的不同DOM元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55692955/