我有一个表格,其中包含用户应该填写的几个字段。该表单还有两个隐藏字段用于用户当前位置(纬度、经度)。我现在花了很长时间试图找到一种方法来填充这些字段。
我希望它如何工作是这样的:提交表单时(jQuery 或表单标签中的 OnSubmit),应该运行一个询问设备位置的 JavaScript 函数。然后用结果填充隐藏字段。
我有执行此操作的工作代码,但我无法让它被 Drupal 调用。
有没有办法在 Drupal 中提交表单时运行 JavaScript 函数,或者我应该找到另一种方法。
非常感谢,
我有一个表格,其中包含用户应该填写的几个字段。该表单还有两个隐藏字段用于用户当前位置(纬度、经度)。我现在花了很长时间试图找到一种方法来填充这些字段。
我希望它如何工作是这样的:提交表单时(jQuery 或表单标签中的 OnSubmit),应该运行一个询问设备位置的 JavaScript 函数。然后用结果填充隐藏字段。
我有执行此操作的工作代码,但我无法让它被 Drupal 调用。
有没有办法在 Drupal 中提交表单时运行 JavaScript 函数,或者我应该找到另一种方法。
非常感谢,
似乎现在已经开始工作了。添加了以下内容
$form['#attributes'] = array('OnSubmit' => 'myFunction();');
尝试使用#attributesonclick将事件添加到提交按钮。
$form['SUBMIT_BUTTON']['#attributes'] = array(
'onclick' => array("YourJsCallback()"),
);
或者,如果您已经在['#attributes']数组中有一些东西,那么您需要添加它。
$form['SUBMIT_BUTTON']['#attributes']['onclick'] = array("YourJsCallback()");
您在“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.
};