jQuery, как разделить сегодняшнюю дату из ввода на месяц, день, год, когда средство выбора даты НЕ используется - PullRequest
0 голосов
/ 03 июня 2011

У меня есть ввод DatePicker, который заполняется сегодняшней датой, когда страница загружается.При использовании средства выбора даты дата разделяется на месяц, день и год и помещается в три скрытых поля, которые отправляются на сервер с данными публикации.Проблема возникает, когда пользователь решает, что сегодняшняя дата в порядке и не использует средство выбора даты;как получить кусочки даты в этих трех скрытых полях?

Я пытался разбить сегодняшнюю дату на куски и добавлять ее в эти поля, но каждый раз пытался добавить ее в jQuery или использовать простые разрывы JavaScriptВсе это.Вот рабочий код, на котором я хотел бы построить:

jQuery

$(function() {
    //set your date picker
        $("#CI").datepicker({
        dateFormat: 'mm/dd/yy',
        changeMonth: true,
        changeYear: true,
        showOn: "both",
        buttonImage: "css/images/calendar-green.gif",
        buttonImageOnly: true,
        buttonImageText: "Calendar",
        beforeShow: function(dateText, instance) { 
            $("#CI").datepicker('setDate', new Date());
        },
        onSelect: function(dateText, instance) {
            var pieces = dateText.split("/");
             $("#CID").val(pieces[0]);
             $("#CIM").val(pieces[1]);
             $("#CIY").val(pieces[2]);
         }                
    })

    //get the current date
    var todaysDate = new Date();
    //format the date in the right format (add 1 to month because JavaScript counts from 0)
    formatDate = (todaysDate.getMonth() + 1) + '/' + 
                         todaysDate.getDate() + '/' + 
                         todaysDate.getFullYear();
    //set the input value
    $('#CI').val(formatDate);       
});

HTML

<input type='text' id='CI' name="CI">
<input type="text" name="CID" id="CID" />
<input type="text" name="CIM" id="CIM" />
<input type="text" name="CIY" id="CIY" />

Ответы [ 2 ]

2 голосов
/ 03 июня 2011

Разделите ваши функции onSelect() на отдельную функцию, которую можно вызывать дважды.

Наличие одной и той же функции при выполнении обеих задач позволяет вам иметь дело с любыми изменениями вашей функциональности или структуры HTML.1004 *

так ...

$(function() {
    function populateHidden(dateText){
        var pieces = dateText.split("/");
        $("#CID").val(pieces[0]);
        $("#CIM").val(pieces[1]);
        $("#CIY").val(pieces[2]);
    }
    //set your date picker
    $("#CI").datepicker({
        dateFormat: 'mm/dd/yy',
        changeMonth: true,
        changeYear: true,
        showOn: "both",
        buttonImage: "css/images/calendar-green.gif",
        buttonImageOnly: true,
        buttonImageText: "Calendar",
        beforeShow: function(dateText, instance) { 
            $("#CI").datepicker('setDate', new Date());
        },
        onSelect: populateHidden
    })

    //get the current date
    var todaysDate = new Date();
    //format the date in the right format (add 1 to month because JavaScript counts from 0)
    formatDate = (todaysDate.getMonth() + 1) + '/' + 
                         todaysDate.getDate() + '/' + 
                         todaysDate.getFullYear();
    //set the input value
    $('#CI').val(formatDate); 
    populateHidden(formatDate); 
});
0 голосов
/ 03 июня 2011

Используйте следующий код:

   //get the current date
    var todaysDate = new Date();
    //format the date in the right format (add 1 to month because JavaScript counts from 0)
    var month = todaysDate.getMonth() + 1 ;
    var date = todaysDate.getDate();
    var year =todaysDate.getFullYear() ;

    formatDate = month + '/' +
                   date+ '/' +
                   year;
    //set the input value
    $('#CI').val(formatDate);       

    $("#CID").val(date);
    $("#CIM").val(month);
    $("#CIY").val(year);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...