Javascript 是否可以在输入框中显示大写文本,但用户复制小写形式?

Javascript 是否可以在输入框中显示大写文本,但用户复制小写形式?,javascript,html,css,Javascript,Html,Css,我有一个输入文本框,其值由javascript函数定义。我想它显示的文本在所有大写。当用户复制文本时,是否可能复制全小写形式 可能的想法是在单击时将文本框值改回小写 我想这样做的原因是,用户正在复制区分大小写的代码,但它更容易用大写字母阅读 <input style="text-transform:uppercase" type="text" value="hello" /> 样式只影响演示文稿。因此,在提交或复制时,该值为小写。请尝试以下操作: input { text-tr

我有一个输入文本框,其值由javascript函数定义。我想它显示的文本在所有大写。当用户复制文本时,是否可能复制全小写形式

可能的想法是在单击时将文本框值改回小写

我想这样做的原因是,用户正在复制区分大小写的代码,但它更容易用大写字母阅读

<input style="text-transform:uppercase" type="text" value="hello" />

样式只影响演示文稿。因此,在提交或复制时,该值为小写。

请尝试以下操作:

input {
  text-transform: uppercase;
}
input:active {
  text-transform: none;
}
编辑: HTML

<input id="input" onkeydown="keyDown()" onkeyup="keyUp()">
<input id="input" onclick="toggle()">
编辑2 HTML

<input id="input" onkeydown="keyDown()" onkeyup="keyUp()">
<input id="input" onclick="toggle()">

我通过将原始javascript变量提升为大写,然后将其发送到输入框来解决这个问题。单击后,函数将降低文本的大小写

在我的例子中,我还希望文本输入字段高亮显示所有文本,以便轻松复制。但这会导致问题,因为每次用户单击以突出显示时,都会再次调用降低文本大小写的函数。因此,我添加了一个计数器,因此它只运行该函数一次

它在JFIDLE中不起作用,所以这里有另一个链接:

HTML:

已确认正在使用以下浏览器的最新版本:

• Windows/Mac: Chrome, FireFox, Internet Explorer, Edge, Safari
• Android: Chrome
• iOS9: Safari, Chrome
• iOS6: Safari
• Windows Phone 8.1: Default browser

在我看来,我会临时复制他们在屏幕上看到的东西。否则会令人困惑。i、 他们复制和粘贴,但得到了他们不期望的东西。他们可能不喜欢,但至少他们的行为是一致的?如果应该将其格式化为大写,那么当他们将其粘贴到其他字段中时,它将保持不变并且是正确的。如果代码区分大小写,则即使您在剪贴板中更正了它,您也会以错误的大小写显示它,从而对您的用户造成伤害。如果它很难阅读,也许可以选择不同的字体。@DanielBeck你可能是对的。要给出上下文,它是折扣凭证代码。我认为在我测试过的设备上不需要区分大小写。如果用户决定复制并粘贴凭证代码,则作为预防措施,此字段将缩回小写。如果不复制文本,我想大多数人不会费心在所有CAP中输入凭证代码。不幸的是,在我测试过的浏览器中并非如此。请参见复制(到剪贴板),并非所有浏览器:Firefox工作正常,Chrome不正常。
:active
在mousedown和mouseup之间生效。这对ctrl-C并没有什么帮助……htr5要求的是onclick而不是那个。在按住ctrl+c键的同时,您仍然可以选择“谢谢”。这可以提高输入的大小写。但我只想舔一舔。输入框的唯一用途是使在所有设备上复制文本更容易。
// Variable to send
var myVariable = "StackOverflow";

// Send variable in uppercase form to input box
document.getElementById('inputBox').value = myVariable.toUpperCase();

// Variable to indicate state
var lowered = 0;

// Function to restore string to original variable
function lwrCase() {
    if (lowered == 0){
        document.getElementById('inputBox').value = myVariable;
    }
    // Increase counter to indicate the string is restored
    lowered = lowered + 1;
}
• Windows/Mac: Chrome, FireFox, Internet Explorer, Edge, Safari
• Android: Chrome
• iOS9: Safari, Chrome
• iOS6: Safari
• Windows Phone 8.1: Default browser