2013-03-01 32 views
14

Tôi muốn thay đổi tất cả các giá trị biểu mẫu thành chữ hoa trước khi gửi biểu mẫu.Làm cách nào để thay đổi tất cả các giá trị đầu vào thành chữ hoa bằng Jquery?

Cho đến giờ tôi có điều này nhưng không hoạt động.

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

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

+0

[Tìm hiểu về' .val()'] (http: // api. jquery.com/val/) – epascarello

+0

@LifeInTheGrey val() chỉ nhận giá trị của phần tử nắm tay – Christophe

Trả lời

34

Hãy thử như dưới đây,

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

Bạn nên sử dụng input[type=text] thay vì :input hoặc input như tôi tin rằng ý định của bạn chỉ hoạt động trên hộp văn bản.

+0

$ (allInputs) thực sự phải là $ (": input"), không cần phải tăng gấp đôi $ – Christophe

16

sử dụng css:

input.upper { text-transform: uppercase; } 

lẽ tốt nhất để sử dụng phong cách, và chuyển đổi serverside. Ngoài ra còn có một plugin jQuery để buộc hoa: http://plugins.jquery.com/plugin-tags/uppercase

+11

LƯU Ý: điều này sẽ chỉ hiển thị văn bản bằng chữ hoa, nó sẽ không chuyển đổi các giá trị được lưu theo cách đó. – PlantTheIdea

+0

Nhận xét ở trên là chính xác, tôi đã thử nó trước đây. –

+0

@GustavoReyes như câu trả lời này nói, bạn thực sự cần phải thực hiện chuyển đổi tại máy chủ. Bạn không thể chắc chắn rằng mã phía máy khách sẽ được chạy. – Pointy

3

Bạn có thể sử dụng each()

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

Điều này hoạt động như một sự quyến rũ. –

+2

* "Điều này hoạt động giống như một sự quyến rũ" * cho đến khi nó đi qua một yếu tố lựa chọn. –

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

FIDDLE

1

Sử dụng css text-transform để hiển thị văn bản trong tất cả các loại đầu vào văn bản. Trong Jquery, bạn có thể chuyển giá trị thành chữ hoa trên sự kiện mờ.

Css:

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

Jquery:.

$(document).on('blur', "input[type=text]", function() { 
    $(this).val(function (_, val) { 
     return val.toUpperCase(); 
    }); 
}); 
Các vấn đề liên quan