2010-12-06 56 views
1

此代碼將用戶在框中鍵入的任何內容更改爲大寫,並將結果顯示在框中。HTML表單文本onkeyup

<html> 
<head> 
<script type="text/javascript"> 
function upperCase(x) 
{ 
    var y=document.getElementById(x).value; 
    document.getElementById(x).value=y.toUpperCase(); 
    document.getElementById("mySpan").value=y.toUpperCase(); 

} 
</script> 
</head> 
<body> 

Enter your name: <input type="text" id="fname" onkeyup="upperCase(this.id)"> 
<br/> 
<span id="mySpan"></span> 

</body> </html> 

但是我怎樣才能使它顯示在文本框下?而當用戶輸入時,大寫文本顯示在文本框下方?

謝謝!

+3

您需要了解HTML和Javascript的基礎知識。 – SLaks 2010-12-06 01:19:34

回答

7

我建議以下,更易於維護的方法,它使用event registration model而不是在inline model

JS:

<script> 
document.getElementById("fname").onkeyup = function() { 
    document.getElementById("mySpan").innerHTML = this.value.toUpperCase(); 
} 
</script> 

標記:

Enter your name: <input type="text" id="fname"/> 
<br/> 
<span id="mySpan"></span> 

演示:http://jsfiddle.net/karim79/GPZ8h/

+0

我怎麼會把一個「跨度」框下?我不熟悉這些。 – CodeGuy 2010-12-06 00:47:51

2

創建一個CSS類

.showUpperCase { text-format: uppercase; } 

並將其添加到您的跨度或文本框。

<span id="mySpan" class="showUpperCase"></span> 

這不會改變輸入的字符,只會將它們顯示爲大寫。 這意味着如果您通過文本框處理輸入,則您還必須將 更改爲大寫服務器端。這不是額外的 雜項,因爲無論客戶端做什麼,您都必須警惕客戶端處理和da服務器端驗證。