2016-10-14 166 views
1

通過使用一個輸入文本框和輸入類型只允許輸入英文字母。輸入的值爲'a',它應該在文本框外顯示爲'A' ?按字符輸入值的反向大小寫(小寫/大寫)

如果我們輸入的拼音小「A」上輸入文本,然後將要在包裝盒外面顯示資本「A」 ... 以下是我的html代碼:

<!DOCTYPE html> 
    <html> 
     <head> 
     <!--<script type="text/javascript" href="check.js"></script>--> 
     </head> 
     <body> 
      <input type="text"> 
      <script> 
       function myFunction() 
       { 
        var A = document.getElementById('input').value; 
        console.log('alphabet'.toUpperCase()); 
       } 
      </script> 
     </body> 
    </html> 
+2

你沒有制定一個問題。你的函數'myFunction'永遠不會被調用,其中你的變量'A'永遠不會被使用,並且你在其中記錄一個常量字符串。 –

+0

@SaiKrishna不能解決你的問題嗎? –

回答

2

爲了顯示與情況下,輸入值相反,你應該:

  1. 調用函數在onkeyup事件的輸入與輸入的字符串立即更新預覽。

  2. 並通過您的字符串併爲每個字符測試迴路,如果它在 uppercase撤銷後才能lowercase或使其uppercase如果是 lowercase

這裏有一個片段演示:

function myFunction() { 
 
    var A = document.getElementById('input').value; 
 
    var output = ''; 
 
    for (var i = 0, len = A.length; i < len; i++) { 
 
    var character = A[i]; 
 
    if (character == character.toLowerCase()) { 
 
     // The character is lowercase 
 
     output = output + character.toUpperCase(); 
 
    } else { 
 
     // The character is uppercase 
 
     output = output + character.toLowerCase(); 
 
    } 
 
    } 
 
    document.getElementById("preview").innerText = output; 
 
}
<input id="input" type="text" pattern="[A-Za-z]" onkeyup="myFunction()" /><span id="preview"></span>

1

您可以使用事件立刻更新的結果,一邊寫。

document.getElementById('input').addEventListener('keyup', function() { 
 
    var input = document.getElementById('input').value; 
 
    if (!input.match(/^[a-z]*$/i)) { 
 
     document.getElementById('output').innerHTML = 'Wrong input'; 
 
     return; 
 
    } 
 
    document.getElementById('output').innerHTML = input.split('').map(function (a) { 
 
     return a.match(/[a-z]/) ? a.toUpperCase() : a.toLowerCase(); 
 
    }).join(''); 
 
});
<input type="text" id="input"> 
 
<div id="output"></div>

+0

它可以......假設我們在輸入文本框中插入元素'A',那麼它將顯示小'a',反之亦然。 –

+0

@SaiKrishna,請參閱編輯。 –