2010-10-11 93 views
1

我有一個應用程序生成一個'action'屬性的元素。我需要更改action屬性的值,但不可能這樣做。然而,它是可能產生的一個正是如此前再添加一個「動作」屬性:可以重複一個HTML表單動作屬性嗎?

這似乎是爲IE瀏覽器。我想知道這種行爲是否在w3c標準中定義,以及我是否可以依賴瀏覽器選擇第一個操作屬性。我搜索了標準文檔了一下,但無法確定重複屬性的規則。

謝謝。

回答

3

該規範聲明表單上只能有一個action屬性。

這很有意義,因爲action屬性指定了表單數據將發佈到的頁面,並將其發佈到兩個不同的頁面上並不合理(您如何從多個頁面查看結果?)。

如果你看一下DTD片段從the spec定義FORM元素:

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form --> 
<!ATTLIST FORM 
    %attrs;        -- %coreattrs, %i18n, %events -- 
    action  %URI;   #REQUIRED -- server-side form handler -- 
    method  (GET|POST)  GET  -- HTTP method used to submit the form-- 
    enctype  %ContentType; "application/x-www-form-urlencoded" 
    accept  %ContentTypes; #IMPLIED -- list of MIME types for file upload -- 
    name  CDATA   #IMPLIED -- name of form for scripting -- 
    onsubmit %Script;  #IMPLIED -- the form was submitted -- 
    onreset  %Script;  #IMPLIED -- the form was reset -- 
    accept-charset %Charsets; #IMPLIED -- list of supported charsets -- 
    > 

你會看到action屬性是一個。要求,b。沒有多重說明符,這意味着它應該只存在一次。

這可能只是偶然的,這在IE中起作用。行爲沒有被定義,另一個瀏覽器可能會扼殺這個輸入或決定選擇一個隨機行爲屬性。

0

+1俄德的答案:d

順便說一句,如果你要編輯原始action,也許你可以嘗試使用javascript:

$("#your_form").attr("action", "something_else"); // in jQuery 
相關問題