【问题标题】:Uncaught TypeError: Cannot read property 'split' of undefined in jQuery未捕获的类型错误:无法读取 jQuery 中未定义的属性“拆分”
【发布时间】:2019-12-18 07:47:44
【问题描述】:

我正在使用input 字段来包含日期选择器。如果我单独运行,日期选择器的代码运行良好。但是,当我集成 datepicker input 字段时,出现错误:

未捕获的类型错误:无法读取未定义的属性“拆分”

我还为所需的 CSS 和脚本提供了所有必要的库和链接。

<div id="select" class="inner">
  <select id="test-options">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="date">Select date time</option>
  </select>
</div>
<div id="datepicker" class="inner">
  <p>Date: <input type="text" id="datepicker-input"></p>
</div>
$(function() {
  $('#test-options').change(function() {
    if ($(this).val() === 'date') {
      var $datepicker = $("#datepicker-input");
      $datepicker.datepicker({
        beforeShow: function(input, inst) {
          $(input).datepicker('setDate', new Date());
        }
      });
      $datepicker.datepicker("show");
    }
  });
});
if ($(this).attr('type'))
  input['type'] = $(this).attr('type');

// this is what causes the error:
input['questions'] = $(this).attr('data-conv-question').split("|");

【问题讨论】:

  • 当元素没有属性data-conv-question..时会出现此错误,因此请先检查元素是否已具有此属性
  • data-conv-question 是如何设置的?如果使用data() 完成,则该属性将不在DOM 中,并且将始终返回undefined。您还需要使用 data() 作为吸气剂。您问题中的代码不足以完全诊断问题。

标签: javascript jquery html css jquery-ui-datepicker


【解决方案1】:

原因是,您正在寻找输入但没有输入

questionsdata-conv-question 是 span 元素的文本 &lt;span&gt;&lt;/span&gt;

看一下固定的例子,虽然没有产生问题的结果,但仍然有效:

Working js fiddle.

随心所欲地随意使用它,但请确保您指向代码中的正确元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2016-08-08
    • 2015-01-06
    • 2017-07-26
    相关资源
    最近更新 更多