如何在jQuery Repeater中设置日期类型的输入的默认值?

时间:2018-11-06 12:16:22

标签: javascript jquery jquery.repeater

我在项目中使用jquery repeater。当我尝试为输入类型的日期设置默认值时返回错误:

  

jquery.repeater.js:688未捕获的TypeError:无法读取属性“ set”   的未定义

表单代码:

<form action="" class="repeater" enctype="multipart/form-data">
  <div data-repeater-list="users">
    <div data-repeater-item>
      <input type="text" name="name"/>
      <input type="email" name="email"/>
      <select name="sex">
        <option value="0" selected>Male</option>
        <option value="1">Female</option>
      </select>
      <input type="date" name="birthday"/>
      <input data-repeater-delete type="button" value="Delete"/>
    </div>
  </div>
  <input id="add" data-repeater-create type="button" value="Add User"/>
</form>

JavaScript代码:

$(document).ready(function () {
    'use strict';
    $('.repeater').repeater({
        defaultValues: {
            'name': 'User',
            'email': 'user@gmail.com',
            'sex': '0',
            'birthday': "1990-09-10"
        },
        show: function () {
            $(this).slideDown();
        },
        hide: function (deleteElement) {
            if(confirm('Are you sure you want to delete this element?')) {
                $(this).slideUp(deleteElement);
            }
        },
        ready: function (setIndexes) {

        }
    });
    $('#add').on('click', function(e){
      var users = $('.repeater').repeaterVal();
      console.log(users);
    });
});

如果不设置默认值,则无法获取所有字段值。

1 个答案:

答案 0 :(得分:0)

对我来说,我是使用JQuery的老式方法

 $(".mydiv-item-repeater").length && $(".mydiv-item-repeater").repeater({
            show: function () {
             $(this).find(".select").val(value);
                $(this).slideDown()
            }, hide: function (e) {
                $(this).slideUp(e)
            }
        });