Drupal jquery 提交表单,无需提交按钮

发布于 2024-09-18 09:56:48 字数 670 浏览 10 评论 0原文

我有一个 drupal 表单,当您从选择列表(一种快速搜索选择列表)中选择一个选项时,我会使用 jquery 发布该表单。

问题是,当我通过单击按钮提交时,它起作用了。 当我使用 jquery,并且按钮位于表单中(隐藏或不隐藏)时,它可以工作。 当我使用 jquery 并移动按钮时,帖子已完成,但“FORM_submit”函数未被调用,它只是刷新我的页面。

谁能解释这种行为?

@编辑:

奇怪的是,我在想:因为你有多个按钮,也许你也必须将按钮作为参数发布。但是当我扫描帖子时,不包括该按钮:

Parametersapplication/x-www-form-urlencoded
form_build_id   form-138a553d76a89c82e09a231a2f55e8a9
form_id duration_search_form
keyword 103
Source
Content-Type: application/x-www-form-urlencoded Content-Length: 92 keyword=103&form_build_id=form-138a553d76a89c82e09a231a2f55e8a9&form_id=duration_search_form

尽管如此,这是带有 jquery 提交功能和隐藏按钮的,并且它可以工作

I have a drupal form which i post using jquery when you select an option from a selectlist (a sort of quicksearch selectlist).

The porblem is that when i submit by clicking the button, it works.
When I use jquery, and the button is in the form (hidden or not), it works.
When I use jquery and I rmove the button, the post is done, but the "FORM_submit" function is not called and it just refreshes my page.

Can anyone explain this behaviour ?

@edit:

The strange thing is, I was thinking: because you have multiple buttons maybe you have to post the button as a parameter as well. But when I scan trough the posts, the button is not included:

Parametersapplication/x-www-form-urlencoded
form_build_id   form-138a553d76a89c82e09a231a2f55e8a9
form_id duration_search_form
keyword 103
Source
Content-Type: application/x-www-form-urlencoded Content-Length: 92 keyword=103&form_build_id=form-138a553d76a89c82e09a231a2f55e8a9&form_id=duration_search_form

Altough, this is with a jquery submit function, and a hidden button, and it works

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最丧也最甜 2024-09-25 09:56:48

这是因为您还必须发布提交按钮的值。下面是我在 bubbletimer-6.x-2.x 中的操作示例:

var formdata = $('#myform').serialize();
formdata += '&op=' + escape($('input[type=submit]', $('#myform')).val());
$.ajax({
  type: 'post',
  url: $('myform').attr('action'),
  data: formdata
});

完整文件: http://drupalcode.org/viewvc/drupal/contributions/modules/bubbletimer/bubbletimer_ahah.js?view=markup&pathrev=DRUPAL-6 --2

This is because you have to post the value of the submit button also. Here comes an example how I did it in bubbletimer-6.x-2.x:

var formdata = $('#myform').serialize();
formdata += '&op=' + escape($('input[type=submit]', $('#myform')).val());
$.ajax({
  type: 'post',
  url: $('myform').attr('action'),
  data: formdata
});

Full file: http://drupalcode.org/viewvc/drupal/contributions/modules/bubbletimer/bubbletimer_ahah.js?view=markup&pathrev=DRUPAL-6--2

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文