可以重复HTML表单操作属性吗?

时间:2010-10-11 08:31:44

标签: html forms action repeat

我有一个应用程序,它生成一个带有'action'属性的元素。我需要更改action属性的值,但是不可能这样做。但是,可以在生成的属性之前添加另一个“action”属性:

这似乎适用于IE。我想知道这个行为是否在w3c标准中定义,以及我是否可以依赖浏览器选择第一个action属性。我搜索了标准文档,但无法确定重复属性的规则。

感谢。

2 个答案:

答案 0 :(得分:3)

规范说明表单上只能有一个action属性。

这是有道理的,因为action属性指定了表单数据将被发布到的页面并将其发布到两个不同的页面是没有意义的(你如何看到多个页面的结果?)。

如果您查看DTD中定义FORM元素的the spec片段:

<!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属性是a。必需的,b。没有多个说明符,这意味着它应该只存在一次。

这可能只是偶然在IE中有效。行为未定义,另一个浏览器可能会阻塞此输入或决定选择随机操作属性。

答案 1 :(得分:0)

+1 Oded的回答:D

顺便说一句,如果你必须编辑原始action,也许你可以尝试使用javascript:

$("#your_form").attr("action", "something_else"); // in jQuery