javascript
  • jquery
  • html
  • 2015-05-29 84 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也是如此。

    相關問題