Điểm:0

Drupal hubspot forms with Varnish

lá cờ br

I have a Drupal 8 hubspot form built in a custom module which holds many fields among which a "Favorite Pizza" field coming from hubspot and this field is rendered as a required fieldset. The code is very long so I decided to explain to you the process instead:

  • In the Drupal buildForm function, we call an external hubspotbuildForm function
  • Inside this function, I collect the following cookie in php $_COOKIE['pizzaLover'], if this cookie holds the value of false, then the form fieldset Favorite Pizza is no longer shown and is no longer required

Hubspot renders the Drupal form without this field. It doesn't even show up in HTML.

Since the page with this Drupal form will be cached in Varnish, I assume that the buildForm function of Drupal will be executed only one time and hence it will call the hubspotbuildform only once, so if a user has $_COOKIE['pizzaLover'] equals to true, then the Favorite pizza fieldset will become visible and required. Then, if another user visits the page, even if his cookie is set to false, he will be able to see the Favorite Pizza field because the page is cached.

This is not what I want, so I chose instead to go to javacsript and execute a function on document ready to check if the cookie is set through JS, if this cookie is set to false then, I tried to remove the required property of this fieldset but it didn't work since the fieldset has embedded required html code. I tried the .remove() function to remove the html fieldset related to this field. The field went away but when I click on submit, the form is not submitting as if it was exepecting a value from me.

Any idea what to do? I want to remove the required field in javascript without blocking the submission.

Kevin avatar
lá cờ in
Tùy thuộc vào máy chủ của bạn, tên của cookie có thể phải tuân theo một mẫu đặt tên nhất định để được chuyển qua lớp bộ nhớ đệm tới ứng dụng được đọc. Ví dụ, điều này đúng với Acquia và Pantheon. Ngoài ra, trừ khi biểu mẫu được tạo bằng AJAX, bạn có thể không muốn trang này được lưu vào bộ đệm.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.