2014-02-26 49 views
1

我有一個正常字段(第一個&姓氏等)的webform,但也有一些隱藏字段。Drupal 7將值從javascript傳遞到webform隱藏字段

f1 - Hidden 

f2 - Hidden 

f3 - Hidden 

它設置爲Secure value (allows use of all tokens)所以我可以使用令牌。

問題是,我如何將值從javascript傳遞給webform隱藏字段,以便它們與表單一起提交。

我看着令牌如:%post[f1]%post[f2] &​​但仍然不知道如何添加值(用JavaScript/jQuery的)。

任何幫助,這是非常讚賞。

C

回答

1

您可以使用一些基本的jQuery。

$('input[name=INPUT_NAME]').val('NEW_VALUE'); 

完全符合Drupal主題,你可能想在Drupal的行爲來包裝這件事:

(function ($) { 
Drupal.behaviors.CUSTOMNAME = { 
    attach: function(context) { 

    $('input[name=INPUT_NAME]').val('NEW_VALUE'); 

    } 
} 
})(jQuery); 

...當然變化 INPUT_NAME與隱藏的name屬性輸入字段和 CUSTOMNAME帶有描述性名稱(例如ChangeHiddenValuesForm)。

最後一點:確保在表單的頁面上包含此JavaScript文件。

編輯: 對不起,我忽略了Secure value參考。

無論如何,如果你希望值是安全的,那麼你不應該改變它的Javascript,因爲任何人都可以通過DOM將其更改爲他或她喜歡的任何東西......這就是爲什麼Webform實現Secure value功能:價值確實與表單一起提交,但不會發送到最終用戶的瀏覽器,因此禁用可能的濫用。 (根據記錄:Secure value使用「」類型從Drupal的形式API)

如果你想改變這樣一個隱藏的價值,你應該選擇Hidden element (less secure, changeable via JavaScript)其中已經提到它能夠通過JavaScript來改變,然後使用上面描述的Drupal行爲。只有你這樣做,它纔會被打印爲隱藏的輸入。

+0

感謝,但對'安全values'似乎不顯示爲正常隱藏輸入。有任何想法嗎? – Cybercampbell

+0

請參閱我的文章中的編輯。 – Propaganistas

+0

使用webform 4.x至少你的輸入字段將被命名爲括號,並且你需要類似這樣的內容來用jQuery選擇它們:$('input [name =「submitted [INPUT_NAME]」]')。VAL( 'NEW_VALUE'); - 我不確定這是舊版webform的情況。謝謝你的偉大答案。 –

0

如果您只是想添加一些JavaScript,然後使用drupal_add_js總線作爲安全值,它將無法修改。嘗試preprocess_page在烏拉圭回合的主題文件

   function mytheme_preprocess_page(&$vars, $hook) { 
      if (true) { 
      drupal_add_js(drupal_get_path('theme', 'mytheme') . '/mytheme.js'); 
      $vars['scripts'] = drupal_get_js(); 
       } 

它只是一個理論...

相關問題