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


  未捕获的TypeError:无法读取未定义的属性“ split”


我还包括了必需的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("|");

最佳答案

原因是,您实际上正在寻找输入,但是没有输入。

questionsdata-conv-question是范围元素<span></span>的文本。

看一下固定的示例,尽管没有产生问题的结果,但仍然可以使用:

Working js fiddle

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

10-04 15:33