javascript
  • jquery
  • html
  • 2015-05-29 85 views 1 likes 
    1

    在我们的代码库,我们有两个人身上,我不明白什么时候使用?什么的区别<INPUT TYPE =“隐藏”>和全局变量JS

    <input type="hidden" id="someFlag" />我们撰写案例/以下列方式读取值$("#someFlag").val('1');$("#someFlag").val() == '1'

    为什么不简单地将全局变量添加到JavaScript文件中?

    var someFlag2; 
    ... 
    someFlag2 = '1'; 
    someFlag2 == '1' 
    

    这些方法之间有一些差异吗?

    +1

    隐藏的输入对于处理表单中的数据非常有用,而不仅仅是隐藏信息。如果你发送一个表单,所有输入变量 - 隐藏或不发送 - 将被发送 – Ben

    +1

    @BenPearlKahan - 只有那些具有'name'属性的将被发送。 – techfoobar

    +0

    您通过隐藏输入发送一些信息。 –

    回答

    5

    当你正在使用AJAX请求我想引导你,你应该避免这两种方法,如果你为什么应该避免全局变量可能 首先,全局变量以下原因被提及...

    之所以全球变量是不鼓励在javascript是因为,在所有的JavaScript代码共享一个单一的全局命名空间,也JavaScript暗示全局变量即。在本地作用域中未明确声明的变量会自动添加到全局名称空间中。过分依赖于全局变量会导致在同一个页面上的各种脚本之间的冲突

    要知道如何避免全局变量,这将是有益的 - >How to avoid global variables in JavaScript?

    同一开头hiddenfields增加了对DOM和获取值额外的字段从DOM元素在繁重的过程中,类似地,你将只能得到文本格式的值,所以你总是需要将它转换为整数或JSON对象,这又将是开销

    我宁愿保存它在一些封闭如果您想了解如何在当前情况下应用此功能,我们可以在此处进行评论..有关信息关闭你可以看看这个计算器question

    1

    我的想法有一点不同。

    在发布表单时,您将能够获得隐藏字段的值作为请求变量的一部分,在全局JavaScript变量的情况下,您需要在POST或GET调用中显式发送它。

    如果你需要的变量仅在客户端比你可以使用任何人,但如果你需要在这种情况下,输入型服务器调用给他们=“隐藏”将是一个不错的选择

    2

    type="hidden"输入如果您想要将一些重要值发布到服务器,而不希望向用户显示,则为更好的选择。通常,人们在使用表单而不使用ajax时使用它,如果您使用表单,则必须给它一个属性name="",因为这是作为密钥发送到服务器的属性。

    尽管js中的全局变量在某种程度上是有用的,但我认为它不被推荐,因为它使代码有点难以维护。

    1

    隐藏的字段可以用于数据结构的一致性。

    发送4个“真实”表单字段以及两个隐藏字段比发送4个真实字段加两个全局性表达式更容易理解,即使您是100%AJAX也是如此。

    相关问题