2016-06-16 10 views
0

Ich versuche, den Wert eines Eingabeelements mithilfe von jQuery festzulegen.Wie setze ich den Wert der Eingangsnummer mit 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()); 
    }); 
}); 

Wenn der Eingangstyp text ist, es funktioniert. Aber ich muss number als Eingabetyp verwenden.

Wie kann ich den Eingabewert mit jQuery oder normalem JavaScript festlegen?

Wichtige Hinweise

Ich versuchte year.val(ev.date.getFullYear()); zu verwenden, aber es hat nicht funktioniert.

+0

Sie sollten '.attr()' nicht verwenden, um den Wert * property * of * any * form-Elemente zu setzen, Sie sollten '.val()' verwenden. (Nebenbei, warum gibt es ein Leerzeichen am Anfang des Formats?) – nnnnnn

+0

versuche mit year.val (ev.date.getFullYear()); –

+0

@KinjalGohil Ich habe versucht mit 'year.val (ev.date.getFullYear());', aber es funktioniert nicht! – Fabio

Antwort

0

Ihr Code ist richtig, nur die Definition von picker falsch ist, ändern

format: " yyyy" 

zu:

dateFormat: "yy" 

(Wenn Sie mit jquery- ui Datepicker)

DEMO Here

+0

Ihre Arbeiten, mein Skript nicht. Vielleicht weil ich bootstrap-datepicker.js verwende https://bootstrap-datepicker.readthedocs.io/en/latest/index.html – Fabio

+0

Mit 'ev.date.getFullYear()' bekomme ich eine gültige Jahreszahl. Ich verstehe nicht, warum ich den Eingabewert nicht ändern kann. Wenn der Typ "Text" ist, funktioniert es, aber nicht, wenn der Typ "Nummer" ist. – Fabio

+0

Ich entschied mich für die Verwendung der jquery-ui-Bibliothek. Vielen Dank – Fabio

0

Sie haben die val Funktion zu verwenden.

Sie können den Code wie folgt schreiben:

$(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

Sie mögen diese verwenden können.

$(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">

Verwandte Themen