2016-08-25 168 views
0

这里以外上传值在[HTML]如何如果<fieldset>标签是<form>标签

元件是HTML代码:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Javascript</title> 
    </head> 
    <body> 
     <form action="/check" id="demo" method="post" name="demo"> 
      <input type="text" name="username" />username 
      <button type="button" 
       onclick="form.change_color.style.backgroundColor='#00FF00';">change 
       fieldset background</button> 
      <button type="button" 
       onclick="activateFieldset()">activate fieldset</button> 
      <input type="submit" value="submit" /> 
     </form> 
     <fieldset form="demo" name="change_color"> 
      <input type="password" name="password" />password 
     </fieldset> 
     <fieldset form="demo" disabled="disabled" name="license" id="license"> 
      <input type="text" name="license_id" />license_id 
     </fieldset> 
     <script> 
      function activateFieldset(){ 
       var e = document.getElementById("license"); 
       e.disabled = ""; 
      } 
     </script> 
    </body> 
</html> 

我填写abcusernamechange_colorlicense_id文本框,但浏览器只能上传username中的数据。

我试过Chrome/Opera/Firefox,它们都是这样工作的。

谁能告诉我为什么浏览器不上传元素中的数据?

非常感谢!

+3

因为你正在尝试是不正确的。如果你想要在表单中传递元素,那么他们需要在表单标签中。他们不能在外面。另一种方法是使用JS构建数据,然后发布它。 – haxtbh

+0

_“有谁能告诉我为什么浏览器不会上传元素中的数据吗?” - 出于同样的原因,邮局无法将您放置的下一张纸放在您发送的letter_下面...表单是被提交的内容,只有表单中的元素被发送。这就是形式_work_;一切都没有意义。 – CBroe

+0

明白了,谢谢@ haxtbh –

回答

1

不像一些评论者的状态,这是非常可能有reassociateable elements形式,线槽采用明确FORM属性,根据HTML5 RFC(虽然我同意,这是更好的将它们全部组合的表格内)。

而就你的情况而言,尽管你已经在字段集中指定了form属性,但碰巧必须具有form属性的元素是INPUT属性。

+0

是的,Santi,U R正确,我改变了我的代码,就像你说的一样,而且效果很好:) –

+0

好。灿烂。 :-) –