2016-07-28 2 views
1

У меня есть несколько текстовых входов, как это:Значение ввода HTML исчезает после добавления опции jqery datepicker?

<input type="text" class="datepicker" value="11-11-2016"> 

И JQuery скрипт:

$(".datepicker").each(function() { 
    $(this).datepicker(); 
    $(this).datepicker("option", "changeYear", true); 
    }); 

Значение ввода исчезает сразу после загрузки страницы !!!

Если удалить параметр:

$(this).datepicker("option", "changeYear", true); 

... значение не пропадают, но всякий раз, когда я добавляю какие-либо из вариантов JQuery Datepicker - на значение !? пропадает

+0

@bresleveloper Пожалуйста, прекратите беспокоить людей для плунжеров или jsfiddles. Код должен идти ** в вопросе **, а не на внешнем сервисе хостинга кода. – meagar

ответ

1

Попробуйте эту строку впоследствии исправить проблему:

$(".datepicker").each(function() { 
    $(this).datepicker(); 
    $(this).datepicker("option", "changeYear", true); 
    $(this).attr("value", "11-11-2016"); 
}); 

Если атрибуты являются динамическими в $(".datepicker"), то используйте следующее:

function getElemAttributes(var element) { 
    var attrs = {}; 
    var attrMap = element.attributes; 

    $.each(attrMap, function (i, e) { attrs[e.nodeName] = e.nodeValue; }); 

    return attrs; 
} 

, чтобы получить все атрибуты как объект. Итак:

$(".datepicker").each(function() { 
    $(this).datepicker(); 

    // Returns something like { id: "datepicker", ..., value: "11-11-2016" } 
    var originalAttributes = getElemAttributes(this); 

    // Do stuff that affects attr on element. 
    $(this).datepicker("option", "changeYear", true); 

    // Set element attributes from riginal attributes object. 
    if (originalAttributes.hasOwnOroperty("value")) { 
     $(this).attr("value", originalAttributes["value"]); 
    } 
    else { 
     // Didn't originally have a "value" attribute - set some default here? 
    } 
}); 
+0

Это ничего не делает ... –

+0

Сначала я получаю 'Uncaught SyntaxError: Неожиданный токен var', после удаления' var' Я получаю 'Uncaught TypeError: originalAttributes.hasOwnOroperty не является функцией' –

0

Я думаю, что проблема это в вашей инициализации, попробуйте следующее:

$(function(){ 

    $('.datepicker').each(function(){ 
     $(this).datepicker({"changeYear": true}); 
    }); 

}); 

Вот рабочий fiddle

+1

Согласно [официальной документации ] (http://api.jqueryui.com/datepicker/#option-changeYear), вы можете добавить этот параметр после инициализации. Я хочу использовать этот метод для других целей. –

0

Вы должны использовать эту опцию, чтобы установить начальную дату:

$(".selector").datepicker("setDate", "10/12/2012"); 

у вас код пример:

$(".datepicker").each(function() { 
    $(this).datepicker(); 
    $(this).datepicker("option", "changeYear", true); 
    $(this).datepicker("setDate", "10/12/2012"); 
    }); 
+0

Когда я использую это с '$ (this) .val()' вместо вашей даты, я получаю неправильную дату из-за формата (я использовал «11-11-2016» в своей стоимости). Если я впервые установил параметр формата, значение снова исчезнет .... –

Смежные вопросы