2013-03-01 28 views
14

我想在提交表單之前將所有表單值更改爲大寫。如何使用Jquery將所有輸入值更改爲大寫?

到目前爲止,我有這個,但它不工作。

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

'allInputs.val()toUpperCase()' – PlantTheIdea 2013-03-01 17:36:24

+0

[瞭解'.VAL()'](HTTP:// API。 jquery.com/val/) – epascarello 2013-03-01 17:38:02

+0

@LifeInTheGrey val()只能得到第一個元素 – Christophe 2013-03-01 17:39:10

回答

34

嘗試像下面,

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

您應該使用input[type=text],而不是:inputinput,因爲我相信你的意圖只能在文本框上操作。

+0

$(allInputs)實際上應該是$(「:input」),不需要加倍$ – Christophe 2013-03-01 17:43:59

16

使用CSS:

input.upper { text-transform: uppercase; } 

可能最好使用的樣式,並轉換服務器端。還有一個jQuery插件強制大寫:http://plugins.jquery.com/plugin-tags/uppercase

+11

注意:這將只顯示大寫的文本,它不會將這些值以這種方式進行轉換。 – PlantTheIdea 2013-03-01 17:37:58

+0

上面的評論是正確的,我曾嘗試過。 – 2013-03-01 17:39:08

+0

@GustavoReyes這個答案說,你真的需要在服務器上進行轉換。你不能確定客戶端代碼將被運行。 – Pointy 2013-03-01 19:22:14

3

您可以使用each()

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

這就像一個魅力。 – 2013-03-01 17:45:33

+2

*「這個工程就像一個魅力」*直到遇到一個select元素。 – 2013-03-01 17:49:06

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

FIDDLE

1

使用CSS文本轉換,以顯示所有輸入型文本的文本。 在Jquery中,您可以將模糊事件的值轉換爲大寫。

定製CSS:

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

Jquery的:

$(document).on('blur', "input[type=text]", function() { 
    $(this).val(function (_, val) { 
     return val.toUpperCase(); 
    }); 
}); 
相關問題