我已经使用css解决了这个问题,但我不允许使用css将文本大写为用户类型,然后在提交之前将提交的数据更改为大写?任何人都可以使用jquery / JS来帮助我。
答案 0 :(得分:3)
在keyup event
上。只需应用该方法转换为大写
this.value.toUpperCase();
<强> Check Fiddle 强>
但是如果您希望在提交数据之前将文本设为大写。那么最好转换为upperCase一次,而不是在keyup event
..
// submit here
var data = $('#input')[0].value.toUpperCase();
<强> Change Event fiddle 强>
$("input").on('keyup', function(e) {
if( [8,37,38].indexOf(e.keyCode) > -1 ) {
return;
}
this.value = this.value.toUpperCase();
});
<强> Another fiddle 强>
您可以使用键码并检查是否按下了退格键或箭头键。否则将其归还或归还。
答案 1 :(得分:1)
您可以使用keyup
事件:
$("#idOfInput").keyup(function() {
this.value = this.value.toUpperCase();
});
答案 2 :(得分:1)
您可以在keydown事件中捕获到z,并用A-Z替换所选文本:
function ucase(event, source) {
var evt = event ? event : window.event;
if (evt.keyCode >= 65 && evt.keyCode <= 90) {
textboxReplaceSelect(source, String.fromCharCode(evt.keyCode).toUpperCase());
return false;
}
return true;
}
function textboxReplaceSelect(oTextbox, sText) {
var isOpera = navigator.userAgent.indexOf("Opera") > -1;
var isIE = navigator.userAgent.indexOf("MSIE") > 1 && !isOpera;
var isMoz = navigator.userAgent.indexOf("Mozilla/5.") == 0 && !isOpera;
if (isIE) {
var oRange = document.selection.createRange();
oRange.text = sText;
oRange.collapse(true);
oRange.select();
} else if (isMoz) {
var iStart = oTextbox.selectionStart;
oTextbox.value = oTextbox.value.substring(0, iStart) + sText + oTextbox.value.substring(oTextbox.selectionEnd, oTextbox.value.length);
oTextbox.setSelectionRange(iStart + sText.length, iStart + sText.length);
}
oTextbox.focus();
}
如何调用它的示例:
<input type="text" onkeydown="return ucase(event,this);" />
答案 3 :(得分:0)
在键盘功能上,文本框大写,但编辑光标位置时总是强制到大多数浏览器结束。它就像一个魅力
$(selector).on('keyup',function(){
var start = this.selectionStart,
end = this.selectionEnd;
this.value = this.value.toUpperCase();
this.setSelectionRange(start, end);
});