为什么HTML表单中的某些标签会获得名称属性而其他标签会获得值属性?

问题描述 投票:2回答:4

我正在学习如何编写HTML表单,我对我遇到的例子几乎没有疑问。

  1. 外行人的价值与名称有什么区别?
  2. 为什么前两个标签输入中的值保留为空字符串?
  3. 为什么第三个标签的选择被赋予一个名称而不是一个值,而以下三个选项只给出了值?
  4. 在第5个标签输入中,值后面有一个S属性,这是什么意思?
  5. 为什么第6个标签的输入既有名称又有价值?
  6. 为什么第6个输入的名称是“facility []”,这与数组有什么关系?
  7. 再次,为什么第8个标签的输入有名称和值,但它的按钮有类和名称?

我真的需要特定于每个标签的答案,因为我仍然是Web开发的初学者。

这是我的代码:

<form id="registration_form" method="POST">


  <!-- 1st-->
  <label>Full name*:</label>
  <br>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="">
  <br>


  <!-- 2nd-->
  <label>Email address*:</label>
  <br>
  <!-- value leaves input box empty-->
  <input type="text" name="email_addr" value="" placeholder="[email protected]">
  <br>



  <!-- 3rd-->
  <label>Select Tour Package* :</label>
  <br>
  <select name="package">
    <option value="Goa">Goa</option>
    <option value="Kashmir">Kashmir</option>
    <option value="Rajasthan">Rajasthan</option>
  </select>
  <br>

  <!-- 4th-->
  <label>Arrival date*:</label>
  <br>
  <input type="text" name="arv_dt" placeholder="m/d/y" value="">
  <br>


  <!--5th -->
  <label>Number of persons*:</label>
  <br>
  <input type="text" name="persons" value="" s>
  <br>



  <!-- 6th-->
  <label>What would you want to avail?*</label>
  <br>Boarding
  <input type="checkbox" name="facilities[]" value="boarding">
  <br>Fooding
  <input type="checkbox" name="facilities[]" value="fooding">
  <br>Sight seeing
  <input type="checkbox" name="facilities[]" value="sightseeing">
  <br>



  <!-- 7th-->
  <label>Discout Coupon code:</label>
  <br>
  <input type="text" name="dis_code" value="">
  <br>



  <!-- 8th-->
  <label>Terms and conditions*</label>
  <br>
  <input type="radio" name="tnc" value="agree" checked>I agree
  <input type="radio" name="tnc" value="disagree">I disagree
  <br>
  <button type="submit" class="btn btn-large btn-primary" name="submit">Complete reservation</button>



</form>
html attributes name-attribute
4个回答
2
投票

name属性是元素的名称。例如,服务器可以使用它来标识表单提交中的字段。在像facilities[]这样的情况下,当服务器接收到它时,它会将具有该名称的所有输入值放入单个数组中。

value属性是一个默认值,它将显示在页面加载的元素中。此值也将发布到服务器并关联回名称。

类通常只用于CSS属性或JavaScript,并且与您问题中的任何其他内容都不相关。

对于你的案例中的S属性,它可能没有任何意义,只是一个错字。如果你使用像Angular's directives这样的东西,它可以有一些意义


1
投票

所以name=""是元素的标识符,而value=""是回发期间该元素的返回值。

例如 - 您输入文本:

<input type="text" name="email_addr" value="" placeholder="[email protected]">

默认值为null - 因此,如果您要使用此值提交表单,则名为“email_addr”的元素的值为null。如果您输入[email protected] - 该元素的值将是`[email protected]


选择元素具有值的原因是因为当您进行选择时 - <option value="testValue" >THIS DOESNT MATTER</options> - 您告诉应用程序您要将值存储为testValue。选项标签中定义的文本正好在屏幕上显示。


1
投票
  1. value是表格提交后将返回的内容。 name只是字段的名称,并由服务器端语言(如PHP.NET)用于定位输入以接收值。
  2. 没有意义。如果需要,可以设置默认值,但将其保留为空则没有任何意义 - 它与没有在代码中定义的value属性相同。
  3. <select>元素及其子元素的标准语法。
  4. s可能是一个错字。没有更多的背景,我们无法确定。

5-6。请参阅eh.的答案 - 他有一个可靠的解释。

  1. 按钮可以被赋予name属性,因此在服务器端,您可以确定单击了哪个按钮。在这种情况下,这些类专门用于使用Bootstrap进行样式设计。

1
投票

1)名称是计算机用于引用该项目的名称,而值是指输入的任何答案。您没有询问占位符,但许多浏览器会在屏幕上显示它就像输入(可能是灰色的)但它永远不会成为真正的价值观。

2)让我把它翻过来......如果Value以非空白的方式开始,用户实际上不需要输入任何内容。他们可以将其用作默认值。名称和电子邮件地址不太可能是默认值是可接受的答案。

3)第3项是列表框,而不是前两项的文本框。虽然您可以设置默认值,但浏览器可能会选择第一个作为默认值而不需要指定。

4)我不熟悉“s”属性。我怀疑这是一个错字。

5和6)这些复选框共享一个名称,因此它们被组合在一起。每个复选框都有一个值,但是当编程语言使用Value时,它最终会看起来像一个数组,包括所有“已检查”的答案。

7)类与视觉风格(Google“层叠样式表”)相关,与名称/价值/等无关。我们一直在探索。按钮也可以有一个值,但除非您将控件组合在一起(如问题5和6中的复选框),否则这个值很少有用。

我希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.