Formular Datepicker (Spracheinstellung)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Formular Datepicker (Spracheinstellung)

    Moin Moin
    Ich bin gerade dabei ein Formular mithilfe von HTML5 CSS 3 und jQuery aufzumöbeln.
    Somit hab ich mithilfe von jQuery UI einen Datepicker eingefügt, welcher auch reibungslos funktioniert, nun zum Problem. Ich habe via jQuery UI ein Radiobutton set eingefügt, welches 3 Buttons enthält die jeweils eine andere Sprache beinhalten. Durch klicken der verschiedenen Sprachen, soll der Datepicker nun Deutsch oder Englisch etc. anzeigen.
    Aber i-wie funktioniert mein script nicht. Villt kann mir jemand einen Tipp geben woran es liegt.

    Quellcode

    1. <p>
    2. <label for="radio">Sprache</label>
    3. <div id="radio">
    4. <input type="radio" id="radio1" name="radio" value="" /><label for="radio1">Default</label>
    5. <input type="radio" id="radio2" name="radio" value="de" checked="checked" /><label for="radio2">Deutsch</label>
    6. <input type="radio" id="radio3" name="radio" value="fr" /><label for="radio3">Francais</label>
    7. </div>
    8. </p>


    Quellcode

    1. $(document).ready(function() {
    2. $("#date").datepicker($.datepicker.regional['de']);
    3. $("#radio").change(function() {
    4. $('#date').datepicker('input', $.datepicker.regional[$(this).val()]);
    5. });
    6. $( "#radio" ).buttonset();
    7. });


    Ich danke für die Antworten und Tipps im vorraus :) Falls ich das Prolem nicht verständlich genug beschrieben habe, bitte ich Euch ebenfalls mich drauf aufmerksam zu machen.

    Gruß Daniel
  • Hi,


    die Doku sagt:
    You can restore the default localizations with:

    $.datepicker.setDefaults($.datepicker.regional['']);

    And can then override an individual datepicker for a specific locale:

    $(selector).datepicker($.datepicker.regional['fr']);

    Quelle: docs.jquery.com/UI/Datepicker


    Dann sollte dein Script so aussehen:

    Quellcode

    1. $(document).ready(function() {
    2. $("#date").setDefaults($.datepicker.regional['de']);
    3. $("#radio").change(function() {
    4. $('#date').datepicker($.datepicker.regional[$(this).val()]);
    5. });
    6. $( "#radio" ).buttonset();
    7. });
  • Hi,

    mein Fehler, entweder setDefauls global, oder mit datepicker, wie du es anfangs schon richtig gemach hast, für den selektierten Datepicker setzen.

    Quellcode

    1. $("#date").datepicker($.datepicker.regional['de']);

    Quellcode

    1. $.datepicker.setDefaults($.datepicker.regional['de']);


    Ich hab aber grad gesehen, dass du das val() auf $this legst. $this spricht aber das div und nicht den input an !

    Dein Selektor muss so aussehen:

    Quellcode

    1. $("#radio input")



    Wenn sich nichts ändert, kann es sein, das du noch ein refresh benötigst:

    Quellcode

    1. $("#date").datepicker("refresh");




    ungetestet!

    Quellcode

    1. $(document).ready(function() {
    2. $("#date").datepicker($.datepicker.regional['de']);
    3. $("#radio input").change(function() {
    4. $('#date').datepicker($.datepicker.regional[$(this).val()]);
    5. $('#date').datepicker("refresh");
    6. });
    7. $( "#radio" ).buttonset();
    8. });
  • Sry vince, dass ich dich nochmal störe.
    Firebug zeigt nun keine Fehlermeldung mehr an, jedoch bringt das Script nicht den gewünschten Effekt. Denn es passiert gar nicht. Die Sprache bleibt immer auf Deutsch, durch anklicken der anderen Button wechselt es nicht ins französische oder englische...

    Wo liegt der fehler?

    Ich bin echt am verzweifeln .... (sitz an dem problem nun schon 2 tage dran)

    Gruß Daniel
  • Aber die anderen Sprachpakete hast du schon eingebunden ? ;)
    jquery-ui.googlecode.com/svn/trunk/ui/i18n/

    Kann auch sein, dass es in der Doku ein Fehler ist. Dort steht:
    $(selector).datepicker($.datepicker.regional['fr']);


    Probier es mal mit "option":

    Quellcode

    1. $('#date').datepicker("option",$.datepicker.regional[$(this).val()]);