2013-04-22 52 views
2

如何限制字符顯示在輸入標記處? 我從服務器獲取這種格式的時間:hh:mm:ss,我想用這種格式顯示一些東西hh:mm,有辦法得到它嗎?
我試圖與最大長度,大小對鉻,但我不能得到它..限制字符在輸入html標記處顯示

<input id="timetable_start" name="start" type="text" value="07:31:00" maxlength=5 pattern="^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$" size=5> 

http://jsfiddle.net/8FtAX/

+0

你不能單獨使用HTML。請更改創建HTML的服務器腳本,或者使用Javascript在生成後修復該頁面。 – Barmar 2013-04-22 22:49:06

+0

同意。將某些內容輸出到標記然後嘗試更改標記是一種倒退。只需輸出所需的內容。 – David 2013-04-22 22:50:08

+1

添加用於獲取服務器時間的代碼,因爲需要在此時執行更改。 – Zeddy 2013-04-22 22:58:32

回答

3

如果你沒有對輸入的數據控制,你可以使用JavaScript來表明你想要的,使用jQuery + timeentry.js您可以輕鬆地做到這一點,也得到了更多的功能:

$(function() { 
    $("#timetable_start").timeEntry({show24Hours: true}); 
}); 

試試這裏:http://jsfiddle.net/cespinoza/e3anw/10/

+0

我明白了,這是最好的選擇,非常感謝。 – Mmeyer 2013-04-23 18:39:21

1

這是工作。

嘗試改變初始值,從:

value="07:31:00" 

到:

value="07:31" 
+0

輸入值來自服務器端(蟒蛇),我不能改變它 – Mmeyer 2013-04-23 12:49:01

+0

不能更改初始值,但你可以改變HTML頁面?如果是這樣的話,你可以添加一個截斷輸入值的JavaScript代碼片段。 – acdcjunior 2013-04-23 14:21:22

0

你真的應該處理數據的服務器端(例如,通過截取字符串特定長度),使HTML文檔中的數據就是您想要顯示的內容。但是,如果這不可能,您可以使用size屬性來指定文本輸入框的可見寬度(按照您的嘗試),將字體設置爲等寬字體,例如。與

size="5" style="font-family: Consolas, Lucida Console, monospace" 

添加到input標記。關鍵是「除了等寬字體外,」字符的(平均)寬度「沒有明確的含義,除了等寬字體外,瀏覽器傳統上以不同的方式實現size屬性。

但是請注意,表單數據,在提交的發送,提供給客戶端腳本,並與瀏覽器檢查它是否支持pattern屬性仍將最初是你所放置在value屬性。所以用戶需要猜測這個並刪除「不可見」部分。這聽起來像可用性惡夢。