2010-03-02 37 views
3

考慮到文本轉換是一個CSS屬性,我不明白如何將輸入字段中的文本轉換設置爲大寫的文本實際上是在提交表單時向頁面發送大寫文本。不是CSS只是應該修改頁面的外觀而不是內容本身?如果我在表單中使用小寫字母輸入內容,是否不應以小寫字母提交,並且在表單字段中以大寫形式顯示?在輸入元素上使用文本轉換實際轉換文本?

我正在使用PHP來處理帖子變量,並且任何使用text-transform設置爲大寫字母的文本實際上都是大寫字母。我修改一個小寫的值,字符串'這是一個測試'。例如...如果我刪除測試並在輸入字段中重新輸入並提交它,然後打印提交的值,它將打印出'這是一個測試'。大寫的重新輸入的文本和與之前相同的大小寫的任何原始文本。這只是一個小故障行爲或什麼?

+0

這是非常有趣的。以前從未嘗試過。你有沒有在多個瀏覽器上試過這個?可能是瀏覽器特定的。 – 2010-03-02 09:37:50

回答

3

測試代碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head><title></title> 
<style type="text/css"><!-- 
textarea, input{ 
    text-transform: uppercase; 
} 
--></style> 
</head> 
<body> 

<? 

if(!empty($_POST)){ 
    echo '<pre>' . htmlspecialchars(print_r($_POST, TRUE)) . '</pre>'; 
} 

?> 


<form action="" method="post"> 
    <textarea name="textarea" rows="3" cols="40">Default</textarea> 
    <input name="text" value="Default"> 
    <input type="submit"> 
</form> 

</body> 
</html> 

有趣的發現:

  • 歌劇10忽略在文字區域text-transform: uppercase
  • 鉻4發送針對POST形式的GET請求
  • 無瀏覽器的我已測試過(Windows XP)功能您所描述的行爲:Firefox 3.6,IE 6,IE7,IE8,Opera 10 ...

恕我直言有,你使用JavaScript一個很好的機會...

+0

我在重新創建場景時遇到了問題。我確實記得不得不手動修改一些已經使用輸入或textarea字段進行編輯的文件,這些字段的文本轉換設置爲大寫,其中一些甚至沒有被我編輯。也許我只是有一個腳本干擾它不再存在的地方... – animuson 2010-03-02 18:20:58

1

那麼,如果所有的主流瀏覽器都確實改變了字段內容,那麼你的關注只是哲學上的興趣。有人可能會爭辯說,對於輸入字段(與之相反,也就是說,對於<h1>元素),具有用戶輸入文本的屏幕外觀的不同於,而實際提交的內容會非常不友好且令人困惑。

編輯測試瀏覽器現在......

  • Chrome 4的Windows上應用的視覺風格,但提交的文本不會改變
  • 火狐3.6在Windows視覺應用的風格,但提交的文本不會改變
  • IE8視覺應用的風格,但提交的文本不會改變

因此我開始韓元這是什麼讓你認爲發佈的字段內容由CSS規則轉換。