Почему бы не использовать комбинацию CSS и бэкенда? Используйте:
style='text-transform:uppercase'
на TextBox, и в Вашем использовании codebehind:
Textbox.Value.ToUpper();
можно также легко изменить regex на блоке проверки допустимости для использования строчных и прописных букв. Это - вероятно, более легкое решение, чем принуждение верхнего регистра на них.
JavaScript имеет "toUpperCase ()" функция строки.
Так, что-то вдоль этих строк:
function makeUpperCase(this)
{
this.value = this.value.toUpperCase();
}
CSS мог помочь здесь.
style="text-transform: uppercase";"
это помогает?
Используйте преобразование текст CSS для фронтенда и затем используйте toUpper метод на Вашей строковой серверной стороне перед проверкой.
Установите стиль на текстовом поле, поскольку преобразуйте текст: верхний регистр ?
Сегодня я просто сделал что-то подобное. Вот измененная версия:
<asp:TextBox ID="txtInput" runat="server"></asp:TextBox>
<script type="text/javascript">
function setFormat() {
var inp = document.getElementById('ctl00_MainContent_txtInput');
var x = inp.value;
inp.value = x.toUpperCase();
}
var inp = document.getElementById('ctl00_MainContent_txtInput');
inp.onblur = function(evt) {
setFormat();
};
</script>
В основном, сценарий присоединяет событие, которое стреляет, когда текстовое поле теряет фокус.
Используйте стиль CSS на текстовом поле. Ваш CSS должен быть чем-то вроде этого:
.uppercase
{
text-transform: uppercase;
}
<asp:TextBox ID="TextBox1" runat="server" Text="" CssClass="uppercase"></asp:TextBox>;
Можно прервать события нажатия клавиши, отменить строчные и добавить их прописные версии к входу:
window.onload = function () {
var input = document.getElementById("test");
input.onkeypress = function () {
// So that things work both on Firefox and Internet Explorer.
var evt = arguments[0] || event;
var char = String.fromCharCode(evt.which || evt.keyCode);
// Is it a lowercase character?
if (/[a-z]/.test(char)) {
// Append its uppercase version
input.value += char.toUpperCase();
// Cancel the original event
evt.cancelBubble = true;
return false;
}
}
};
Это работает и в Firefox и в Internet Explorer. Вы видите его в действии здесь .
Я бы сделал это с помощью jQuery.
<script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#txt").keydown(function(e) {
if (e.keyCode >= 65 & e.keyCode <= 90) {
val1 = $("#txt").val();
$("#txt").val(val1 + String.fromCharCode(e.keyCode));
return false;
}
});
});
</script>
У вас должна быть библиотека jQuery в папке / script
.
<!-- Script by hscripts.com -->
<script language=javascript>
function upper(ustr)
{
var str=ustr.value;
ustr.value=str.toUpperCase();
}
function lower(ustr)
{
var str=ustr.value;
ustr.value=str.toLowerCase();
}
</script>
<form>
Type Lower-case Letters<textarea name="address" onkeyup="upper(this)"></textarea>
</form>
<form>
Type Upper-case Letters<textarea name="address" onkeyup="lower(this)"></textarea>
</form>
**I would do like:
<asp:TextBox ID="txtName" onkeyup="this.value=this.value.toUpperCase()" runat="server"></asp:TextBox>**
Я понимаю, что это немного поздно, но я не смог найти хороший ответ, который работал бы с ASP.NET AJAX, поэтому я исправил код выше:
function ToUpper() {
// So that things work both on FF and IE
var evt = arguments[0] || event;
var char = String.fromCharCode(evt.which || evt.keyCode);
// Is it a lowercase character?
if (/[a-z]/.test(char)) {
// convert to uppercase version
if (evt.which) {
evt.which = char.toUpperCase().charCodeAt(0);
}
else {
evt.keyCode = char.toUpperCase().charCodeAt(0);
}
}
return true;
}
Используется так:
<asp:TextBox ID="txtAddManager" onKeyPress="ToUpper()" runat="server"
Width="84px" Font-Names="Courier New"></asp:TextBox>