2013-05-02 4 views
2

Я использую Bootstrap DatePicker: https://github.com/eternicode/bootstrap-datepickerфункция JQuery/JavaScript не обновляет текстовое поле

У меня есть она придает две коробки - InvDate и InvDueDate - и он всплывает в порядке, и устанавливает даты и т.д. просто отлично.

У меня есть раскрывающийся список, хотя при его выборе я хочу взять дату в поле InvDate и добавить val() из раскрывающегося списка в InvDate и заполнить InvDueDate.

Однако, я не могу показаться, чтобы получить InvDueDate изменить это дата (ничего не делает) - поле выпадающий действительно вызвать функцию, но эта строка не появляется ничего делать:

$("#InvDueDate").datepicker("setDate", duedate);:

HTML является:

 <div class="editor-label"> 
     <label for="InvDate">InvDate</label> 
    </div> 
    <div class="editor-field"> 
     <input class="textbox datepicker" data-val="true" data-val-date="The field InvDate must be a date." data-val-required="The InvDate field is required." id="InvDate" name="InvDate" type="text" value="02 May 2013" /> 
     <span class="field-validation-valid" data-valmsg-for="InvDate" data-valmsg-replace="true"></span> 
    </div> 



    <div class="editor-label"> 
     <label for="Terms">Terms</label> 
    </div> 
    <div class="editor-field"> 
     <select id="Terms" name="Terms"><option value="0">Due on invoice date</option> 
     <option value="7">Net 7 days</option> 
     <option value="14">Net 14 days</option> 
     <option value="21">Net 21 days</option> 
     <option value="28">Net 28 days</option> 
     <option value="45">Net 45 days</option> 
     <option value="60">Net 60 days</option> 
     </select> 
    </div> 

    <div class="editor-label"> 
     <label for="InvDueDate">InvDueDate</label> 
    </div> 
    <div class="editor-field"> 

     <input class="textbox datepicker" data-val="true" data-val-date="The field InvDueDate must be a date." data-val-required="The InvDueDate field is required." id="InvDueDate" name="InvDueDate" type="text" value="02 May 2013" /> 

     <span class="field-validation-valid" data-valmsg-for="InvDueDate" data-valmsg-replace="true"></span> 
    </div> 

Мой JQuery/JavaScript является:

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#Terms").change(function() { 
     var invdate = new Date(); 
     var duedate = new Date(); 
     invdate = $("#InvDate").val(); 
     var net = $("#Terms").val(); 
     duedate.setDate(invdate.getDate() + net); 
     $("#InvDueDate").datepicker("setDate", duedate); 
    }); 
    }); 
</script> 

Является ли это очевидным для всех, где я ошибаюсь?

ОБНОВЛЕНИЕ ПОКАЗАТЬ РАБОЧАЯ КОД

var start_date = new Date($('#InvDate').val()); 
    var duration = parseInt($('#Terms').val()); 
    var end_date = new Date(); 
    end_date.setDate(start_date.getDate() + duration); 
    $("#InvDueDate").datepicker("setDate", end_date); 
+1

[проверить это] (http://stackoverflow.com/questions/1953840/datepickersetdate-issues-in-jquery) – pmandell

+0

Маленький совет: попробуйте отладки даты с 'console.log', чтобы увидеть если ваши 'vars' хорошо отформатированы. – soyuka

ответ

4

Я думаю, что ваша дата не правильно отформатирован, см:

var invdate = new Date(); 

, а затем она заменяется

$('#invDate').val(); 

Но это должно быть:

var invDate = new Date($('#invDate').val()); 

ИЛИ (как zeroflagL комментирует)

var invDate = $('#invDate').datepicker('getDate'); //gives you a Date object 
+1

или 'var invDate = $ ('# invDate'). Datepicker ('getDate');' – zeroflagL

+0

Согласен, но в моей памяти .val() в поле datepicker выдает правильный формат даты (не уверен). – soyuka

+0

Верно, но если вы можете напрямую получить объект 'Date' ...;) +1 в любом случае – zeroflagL

1

Вы уверены, что SETDATE является доступным методом $ .datepicker? Он не указан в документации

Это может быть то, что вы ищете? https://github.com/eternicode/bootstrap-datepicker#update

+0

См. [Github] (https://github.com/eternicode/bootstrap-datepicker/blob/master/js/bootstrap-datepicker.js#L288), он существует. – soyuka

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