2013-03-01 18 views
14

Chcę zmienić wszystkie moje wartości formularzy na wielkie litery przed przesłaniem formularza.Jak zmienić wszystkie wartości wejściowe na wielkie za pomocą Jquery?

Do tej pory mam to, ale nie działa.

$('#id-submit').click(function() { 
     var allInputs = $(":input"); 
     $(allInputs).value.toUpperCase(); 
     alert(allInputs); 
}); 
+1

'allInputs.val() toUpperCase()' – PlantTheIdea

+0

[Więcej informacji na temat '.val()'] (http: // api. jquery.com/val/) – epascarello

+0

@LifeInTheGrey val() otrzymuje tylko wartość pierwszego elementu – Christophe

Odpowiedz

34

Spróbuj jak poniżej,

$('input[type=text]').val (function() { 
    return this.value.toUpperCase(); 
}) 

Należy użyć input[type=text] zamiast :input lub input jak wierzę swój zamiar mają działać tylko w polu tekstowym.

+0

$ (allInputs) powinno w rzeczywistości być $ (": input"), nie ma potrzeby podwajania $ – Christophe

16

użycie CSS:

input.upper { text-transform: uppercase; } 

prawdopodobnie najlepiej użyć stylu i konwertować serverside. Jest również plugin jQuery zmusić wielkie: http://plugins.jquery.com/plugin-tags/uppercase

+11

UWAGA: po prostu wyświetli tekst pisany wielkimi literami, nie będzie on konwertował wartości, które mają zostać zapisane w ten sposób. – PlantTheIdea

+0

Powyższy komentarz jest poprawny, próbowałem go wcześniej. –

+0

@GustavoReyes, jak mówi ta odpowiedź, naprawdę musisz wykonać konwersję na serwerze. Nie można mieć pewności, że zostanie uruchomiony kod po stronie klienta. – Pointy

3

Można użyć each()

$('#id-submit').click(function() { 
     $(":input").each(function(){ 
      this.value = this.value.toUpperCase();   
     }); 
}); 
+0

Działa to jak urok. –

+2

* "To działa jak czar" *, dopóki nie natrafi na wybrany element. –

5
$('#id-submit').click(function() { 
    $("input").val(function(i,val) { 
     return val.toUpperCase(); 
    }); 
}); 

FIDDLE

1

użyć CSS text-transform do wyświetlania tekstu w całym tekście typu wejścia. W Jquery można przekształcić wartość na wielkie litery na zdarzenie blur.

CSS:

input[type=text] { 
    text-transform: uppercase; 
} 

Jquery.

$(document).on('blur', "input[type=text]", function() { 
    $(this).val(function (_, val) { 
     return val.toUpperCase(); 
    }); 
}); 
Powiązane problemy