2015-06-26 3 views
0

У меня есть пользовательский расслоение плотной файл в моем пользовательский модуль, который генерирует 3-значный код,Как сгенерировать 3 уникальных случайных числа и использовать их как идентификатор в веб-форме drupal?

function genDigit() { 
    return Math.floor(Math.random()*899+100); 
} 

Я хотел бы добавить этот идентификатор в моем веб-форму следующим образом:

  1. Когда пользователь открывает страницу webform в браузере, js вызывается из пользовательского модуля (при условии, что модуль активен)
  2. Сгенерированный идентификатор автоматически передается на веб-форму в скрытом поле
  3. При отправке формы идентификатор сохранены также вдоль стороне других данных.
+0

В чем вопрос? Вы хотите создать 3 уникальных идентификатора или хотите, чтобы идентификатор состоял из 3 разных номеров? Например. 123, но не 112? У вас есть проблема с назначением этого сгенерированного номера в скрытое поле ввода? Вам нужна помощь в сохранении данных формы? На самом деле не уверен, где вам нужна помощь. –

+0

Фактически функция js будет генерировать трехзначное число между 000-999. Моя проблема заключается в том, как отправить этот сгенерированный номер из функции, чтобы включить его в мою веб-форму, как только пользователь загрузит страницу веб-формы (например, в скрытом поле). Используемый здесь модуль Drupal - это модуль Webform, а мой JS - в настраиваемом модуле. – Moushrat

+0

Подход JS для добавления идентификатора в форму уже звучит неправильно! – hugronaphor

ответ

1

Я хотел бы предложить что-то вроде этого:

drupal_add_js('jQuery(document).ready(function(){jQuery("#ID_ELEMENT").val(Math.floor(Math.random()*899+100));});','inline'); 

, в котором вы положить JS в самой функции drupal_add_js, вместо вызова внешнего файла JS, чтобы сделать это. Кстати, эта функция не генерирует уникальный идентификатор, но может дать вам представление о том, как исходить отсюда.

Но идея добавления такого идентификатора к веб-форме действительно любопытно, поскольку любая веб-форма имеет уникальный идентификатор уже как @CornelAndreev, упомянутый ранее. Удачи.