2016-06-16 3 views
0

Я пытаюсь установить значение входного элемента с помощью jQuery.Как установить значение входного номера с помощью jQuery?

HTML: <input id="id_year" name="year" type="number">

JavaScript:

$(document).ready(function() { 
    var year = $("#id_year"); 
    year.datepicker({ 
     format: " yyyy", // Notice the Extra space at the beginning 
     viewMode: "years", 
     minViewMode: "years" 
    }); 
    year.on('changeDate', function(ev){ 
     year.attr('value',ev.date.getFullYear()); 
    }); 
}); 

Если тип входного сигнала text, он работает. Но я должен использовать number как тип ввода.

Как установить входное значение с помощью jQuery или обычного JavaScript?

Важные замечания

Я пытался использовать year.val(ev.date.getFullYear());, но это не сработало.

+0

Вы не должны использовать '.attr()' для установки значения * свойства * элементов * любой * формы, вы должны использовать '.val()'. (В стороне, почему есть место в начале формата?) – nnnnnn

+0

попробуйте с year.val (ev.date.getFullYear()); –

+0

@KinjalGohil Я пробовал с 'year.val (ev.date.getFullYear());', но это не работает! – Fabio

ответ

0

Ваш код правильный, только определение DatePicker неправильно, измените

format: " yyyy" 

к:

dateFormat: "yy" 

(Если вы используете jquery- ui datepicker)

DEMO Here

+0

Ваши работы, мой сценарий нет. Возможно, потому что я использую bootstrap-datepicker.js https://bootstrap-datepicker.readthedocs.io/en/latest/index.html – Fabio

+0

Использование 'ev.date.getFullYear()' Я получаю действительный номер года. Я не понимаю, почему я не могу изменить входное значение. Если тип - это «текст», он работает, но не если тип «number». – Fabio

+0

Я решил использовать библиотеку jquery-ui. благодаря – Fabio

0

Вы должны использовать функцию val.

Вы можете написать свой код, как это:

$(document).ready(function() { 
    var year = $("#id_year"); 
    year.datepicker({ 
     format: " yyyy", // Notice the Extra space at the beginning 
     viewMode: "years", 
     minViewMode: "years" 
    }); 
    year.on('changeDate', function(ev){ 
     console.log("ssds"); 
     $(this).val(ev.date.getFullYear()); 
    }); 
}); 
0

Вы можете использовать, как это.

$(document).ready(function() { 
 
    var year = $("#id_year"); 
 
    year.datepicker({ 
 
     format: " yyyy", // Notice the Extra space at the beginning 
 
     viewMode: "years", 
 
     minViewMode: "years", 
 
     onSelect: function(dateText) { 
 
      console.log(dateText); 
 
      var startDate = new Date(dateText); 
 
      year.val(startDate.getFullYear()); 
 
      console.log(year.val()); 
 
     } 
 
    }); 
 
    /* year.on('changeDate', function(ev){ 
 
     console.log("ssds"); 
 
     year.val(ev.date.getFullYear()); 
 
     console.log(year.val()); 
 
    });*/ 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 

 
<link rel="stylesheet" href="https://jqueryui.com/resources/demos/style.css"> 
 
<input id="id_year" name="year" type="number">

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