Javascript 如何正确地将keyup()函数应用于具有不同输入的不同DOM元素?
我试图限制不同的最小和最大输入的日期,月份和年份输入的出生日期。然而,函数中似乎有一些错误。我可以知道写这个函数的正确和好方法是什么吗?我尝试了箭头功能,但不起作用。我应该用bind吗?非常感谢你Javascript 如何正确地将keyup()函数应用于具有不同输入的不同DOM元素?,javascript,jquery,this,apply,bind,Javascript,Jquery,This,Apply,Bind,我试图限制不同的最小和最大输入的日期,月份和年份输入的出生日期。然而,函数中似乎有一些错误。我可以知道写这个函数的正确和好方法是什么吗?我尝试了箭头功能,但不起作用。我应该用bind吗?非常感谢你 $(document).ready(function () { var minMonth = 1; var maxMonth = 12; var minDay=1; var maxDay=31; var minYear=1900; var maxYear=2019; function
$(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,因为这是指当前正在执行的函数,因为您正在调用一个帮助函数,它不再指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);
});
});
您忘记传递对象。
每次在函数内部调用函数时,函数将只读取传递的数据,而不是顶部的变量或对象。
例如:
function run(){
x=2;
y=3;
check(x);
//or
check2(x,y);
}
function check(x){
if(x<y){
console.log('in that example you will have a error becouse you are not passing 2nd val')
}
}
function check2(x,y){
if(x<y){
console.log('Yes, x is smaller than Y, we send all necessary data')
}
}
简单的广告“这”和重建您的主要功能
下面是您的脚本和代码片段
$document.readyfunction{
var minMonth=1;
var maxMonth=12;
var minDay=1;
var maxDay=31;
var minYear=1900;
var maxYear=2019年;
函数minMaxDobminDob,maxDob,el{
ifel.val>maxDob{
瓦尔马克斯多布;
}
ifel.val