首页 > 解决方案 > 如何通过传递来自 onclick 事件的引用来访问另一个函数中的 $(this).val()?

问题描述

当前代码:

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

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

结果/问题:

当我这样做时,我什么也得不到,即使我在日期选择器上选择了任何日期。如果选择,我希望能够获得当前选择的值,如果没有,我希望能够获得 null。我这样做正确吗?

标签: javascriptjquerydatepicker

解决方案


您应该传递this给函数,以便您可以在函数内部引用它来访问该值。另外,不确定您为什么使用validatein validate.validateInput()

function validateInput(el){
  console.log($(el).val());
}
 
$("#element")
  .datepicker({
    todayHighlight: true,
    weekStart: 0,
    format: "yyyy-mm-dd",
    onClose: function() {
      validateInput(this);
    }
  });
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script>
<p>Date: <input type="text" id="element"></p>


推荐阅读