Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过从onclick事件传递引用来访问另一个函数中的$(this).val()?_Javascript_Jquery_Datepicker - Fatal编程技术网

Javascript 如何通过从onclick事件传递引用来访问另一个函数中的$(this).val()?

Javascript 如何通过从onclick事件传递引用来访问另一个函数中的$(this).val()?,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,当前代码: 函数validateInput(){ console.log($(this.val()) } $(“元素”) .日期选择器({ 今天的亮点:没错, 周开始:0, 格式:“yyyy-mm-dd”, onClose:function(){ validate.validateInput() } })将其作为普通参数传递 函数验证输入(el){ console.log($(el).val()) } $(“元素”) .日期选择器({ 今天的亮点:没错, 周开始:0, 格式:“yyyy-mm

当前代码:

函数validateInput(){
console.log($(this.val())
}
$(“元素”)
.日期选择器({
今天的亮点:没错,
周开始:0,
格式:“yyyy-mm-dd”,
onClose:function(){
validate.validateInput()
}

})
将其作为普通参数传递

函数验证输入(el){
console.log($(el).val())
}
$(“元素”)
.日期选择器({
今天的亮点:没错,
周开始:0,
格式:“yyyy-mm-dd”,
onClose:function(){
验证输入(此)
}
})
您应该传递给函数,以便在函数中引用该函数以访问值。另外,不确定为什么要在
validate.validateInput()中使用
validate

函数验证输入(el){
log($(el.val());
}
$(“元素”)
.日期选择器({
今天的亮点:没错,
周开始:0,
格式:“yyyy-mm-dd”,
onClose:function(){
验证输入(本);
}
});


日期:

你可以这样做:

function validateInput(element){

console.log($(element).val())
}
打电话

    $("#element")
      .datepicker({
        todayHighlight: true,
        weekStart: 0,
        format: "yyyy-mm-dd",
        onClose: function() {
          validate.validateInput('#element');
        }
      });
或是亲昵地

$(".date_input")
          .datepicker({
            todayHighlight: true,
            weekStart: 0,
            format: "yyyy-mm-dd",
            onClose: function(e) {
              validate.validateInput(e.target);
            }
          });

提供
validate.validateInput()
不需要
this
来引用
validate
(例如调用其他验证方法),然后您可以使用来控制
this
的解释,而无需传递参数

function validateInput() {
    console.log($(this).val());
}

$("#element").datepicker({
    'todayHighlight': true,
    'weekStart': 0,
    'format': "yyyy-mm-dd",
    'onClose': validate.validateInput.bind(this)
});

如果要在选择后获取日期,请使用接收文本的
onSelect
事件,在函数内部,您可以尝试
this.value
jquery.js:7550 Uncaught TypeError:无法读取未定义的属性“toLowerCase”。当我运行这个时,我得到了这个。这与我的jquery有关吗?@shan,我不这么认为,错误表明您试图在null对象上使用
toLowerCase
。但这在你的问题中并没有任何地方被使用……好的,我明白了,我是无意中引用了其他东西……谢谢这个作品!如果我调用类似于:$(“#element”).datepicker().on(“hide”,e=>{validateInput(this)})的东西,那么我想把这个问题作为与这个问题相关的问题来处理;从这个意义上说,“this”指的是函数而不是元素正确吗?因此,如果我想在validateInput中获得“this”,我必须使用function()@shan,在这种情况下,您可以使用正常的函数语法
.on(“input”,function(){validateInputx(this)})