我有一個網頁,我想用用戶輸入文本做些事情。通常,在一個<form>
嵌套和設置輸入中使用<input type="text" />
而不使用表單屬性在html嚴格模式中是不可接受的。我想避免<form>
,但仍希望使用一些文本字段來使用Javascript。沒有表格的文本字段
有人得到了解決方案?
如果有人幫我選擇一個文本輸入選項,並點擊一個按鈕(帶/不帶jQuery)來提示輸入數據,它會更有幫助。
在此先感謝...
我有一個網頁,我想用用戶輸入文本做些事情。通常,在一個<form>
嵌套和設置輸入中使用<input type="text" />
而不使用表單屬性在html嚴格模式中是不可接受的。我想避免<form>
,但仍希望使用一些文本字段來使用Javascript。沒有表格的文本字段
有人得到了解決方案?
如果有人幫我選擇一個文本輸入選項,並點擊一個按鈕(帶/不帶jQuery)來提示輸入數據,它會更有幫助。
在此先感謝...
使用W3C's validator,這通過HTML 4.01嚴格:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>test</title>
</head>
<body>
<p><input type="text" value="hi"></p>
</body>
</html>
並且這通過XHTML 1.0嚴格:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
</head>
<body>
<p><input type="text" value="hi" /></p>
</body>
</html>
的問題是,<input>
是直列標籤,因此需要是裏面的東西接受這樣的標籤(<body>
沒有)。
沒有窗體的輸入元素是完全可以的。它在哪裏說它不被允許?
具有的DTD仔細一看,一個input
元素是inline
的一部分(可以稱之爲)組:
<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
<!-- %inline; covers inline or "text-level" elements -->
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
因此,無論inline
是允許的,因此是input
。這意味着你不需要form
。
E.g.在div
:
<!ENTITY % flow "%block; | %inline;">
(...)
<!ELEMENT DIV - - (%flow;)* -- generic language/style container -->
但不,你在評論中提到body
,:
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
(我想不用說,block
不包含inline
)。
我正在使用微軟表達網站,它顯示錯誤,說在HTML 4.01嚴格
不能包含標籤 –@blasteralfred:因爲'body'不允許有'inline'元素。 –
@blasteralfred:這不是缺少一種形式 - 這是事實,身體可能不直接包含內聯元素。把你的輸入放在另一個塊元素中,它應該被驗證。 –