Javascript 当用户在不使用css文本转换的情况下键入文本时,是否将文本字段中的文本大写?
我已经使用css解决了这个问题,但我不允许使用css将文本大写为用户类型,然后在提交之前将提交的数据更改为大写?有人可以使用jquery/JS帮助我解决这个问题。关于keyup事件。只需应用该方法将其转换为大写Javascript 当用户在不使用css文本转换的情况下键入文本时,是否将文本字段中的文本大写?,javascript,jquery,Javascript,Jquery,我已经使用css解决了这个问题,但我不允许使用css将文本大写为用户类型,然后在提交之前将提交的数据更改为大写?有人可以使用jquery/JS帮助我解决这个问题。关于keyup事件。只需应用该方法将其转换为大写 this.value.toUpperCase(); 但是,如果您希望在提交数据之前文本为大写。然后最好将其转换为大写一次,而不是在keyup事件中绑定 您可以使用键代码并检查是否按下了退格键或箭头键。否则将其大写或返回。在键控事件上。只需应用该方法将其转换为大写 this.value.
this.value.toUpperCase();
但是,如果您希望在提交数据之前文本为大写。然后最好将其转换为大写一次,而不是在keyup事件中绑定
您可以使用键代码并检查是否按下了退格键或箭头键。否则将其大写或返回。在键控事件上。只需应用该方法将其转换为大写
this.value.toUpperCase();
但是,如果您希望在提交数据之前文本为大写。然后最好将其转换为大写一次,而不是在keyup事件中绑定
您可以使用键代码并检查是否按下了退格键或箭头键。否则将其大写或返回。您可以使用keyup事件:
演示:您可以使用keyup事件:
演示:您可以在按下键事件中捕获a到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);" />
您可以在按下键事件中将a捕捉到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);" />
在使用键控功能时,文本框大写,但在大多数浏览器中,编辑光标位置时始终强制结束。它很有魅力
$(selector).on('keyup',function(){
var start = this.selectionStart,
end = this.selectionEnd;
this.value = this.value.toUpperCase();
this.setSelectionRange(start, end);
});
在使用键控功能时,文本框大写,但在大多数浏览器中,编辑光标位置时始终强制结束。它很有魅力
$(selector).on('keyup',function(){
var start = this.selectionStart,
end = this.selectionEnd;
this.value = this.value.toUpperCase();
this.setSelectionRange(start, end);
});
这个解决方案不让我去改变文本,因为它把我带回到文本框中的最后一个字母,然后把它应用到更改事件上,而不是KEXUPIT一旦ToBox失去焦点就大写,但是我所寻找的是将它改为大写,因为用户类型Itf用户尝试在文本中间键入,第一个键会在中间加上一个字符,其余的将在end@Sushanth-我刚刚也触发了这个问题。在文本之间编辑文本时,它会将光标强制移到文本框的末尾。该解决方案不会让我去更改文本,因为它会将我带回到文本框中的最后一个字母,然后将其应用于更改事件,TekBox失去焦点,而不是KEYUPIT大写,但是我正在寻找的是将它改为大写,作为用户类型,ITIF用户尝试在文本中间键入,第一个键会在中间加上一个字符,其余的将在end@Sushanth-我也触发了这个问题,当在文本之间编辑时,它会将光标强制移到文本框的末尾。如果输入大写很重要的话,我也会确保在服务器端将其大写。记住,Javascript总是可以被禁用的。如果大写输入很重要,我也会确保在服务器端使用它。记住,Javascript总是可以被禁用的。我意识到它是IE特有的,我这样做是为了它能在其他浏览器中工作,但是我不能测试,因为我的计算机上没有安装任何其他的浏览器,只有IE?那是新的。如果你害怕安装真正的浏览器,你可以使用pocket opera,但老兄,帮你自己和我们一个忙……公司心态,我通过了测试,我在IE、Firefox和ChromeI中测试并使其工作。我意识到它是针对IE的,我这样做是为了让它在其他浏览器中工作,然而,我不能测试,因为我没有任何其他安装在我的电脑上只有IE?那是新的。如果你害怕安装真正的浏览器,你可以使用pocket opera,但是伙计,帮你自己和我们一个忙……公司的心态,我通过了它,我在IE、Firefox和Chrome中测试并使它工作