2013-03-01 94 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(); 
    }); 
}); 
相关问题