在Drupal 7中的表单提交上运行JavaScript

时间:2013-05-14 21:48:15

标签: javascript php drupal drupal-7 drupal-fapi

我有一个表单,其中包含用户应填写的几个字段。该表单还为用户当前位置(lat,long)提供了两个隐藏字段。我现在花了很长时间试图找到填补这些领域的方法。

我希望它如何工作是这样的: 提交表单(表单标记中的jQuery OR OnSubmit)时,应运行一个要求设备查找位置的JavaScript函数。然后用结果填充隐藏的字段。

我有这方面的工作代码,但我无法让它被Drupal调用。

有没有办法在Drupal中提交表单时运行JavaScript函数,或者我应该找到另一种方法来执行它。

非常感谢,

3 个答案:

答案 0 :(得分:2)

尝试使用#attributesonclick事件添加到提交按钮。

$form['SUBMIT_BUTTON']['#attributes'] = array(
    'onclick' => array("YourJsCallback()"),
);

OR 如果您已在['#attributes']数组中包含某些内容,则需要添加该内容。

$form['SUBMIT_BUTTON']['#attributes']['onclick'] = array("YourJsCallback()");

答案 1 :(得分:2)

现在似乎已经开始工作了。添加了以下

$form['#attributes'] = array('OnSubmit' => 'myFunction();');

答案 2 :(得分:1)

你有" www / misc / ajax.js"您可以在javascript代码中覆盖:

/**
 * Modify form values prior to form submission.
*/
Drupal.ajax.prototype.beforeSubmit = function (form_values, element, options)
 {
      // This function is left empty to make it simple to override for modules
      // that wish to add functionality here.
 };