【问题标题】:How to get form content by name?如何按名称获取表单内容?
【发布时间】:2011-08-28 02:50:39
【问题描述】:

如果我有

$(document).ready(function(){
    $('form').live('submit', function(){
    var dom       = $(this);
    var all_forms = $("form");

问题

如何通过名称而不是 ID 获取特定表单?

<form id="create_form" name="create_form" action="" method="post">

目的

之所以必须使用名称,是因为我有许多自动生成的表单,我事先不知道 ID,但名称始终相同。

当我有表单时,我会将它传递给嵌套

$.ajax({
   type: "GET",
   url: "/cgi-bin/ajax.pl",
   contentType: "application/json; charset=utf-8",
   dataType: "json",

// data: $(this).serialize(),
// data: $(form_id).serialize(),
// data: $(aform).serialize(),

【问题讨论】:

  • 是否有可能创建多个表单?
  • @mcgrailm:你是什么意思?现在有大约 100 个表格,但只有一个有 name="create_form"。其他人都没有名字。我通过&lt;input name="anchor" value="&lt;TMPL_VAR ID&gt;" type="hidden"&gt; 识别那些
  • 好吧,我担心你可能有多个同名的表单

标签: javascript jquery ajax jquery-selectors


【解决方案1】:

您可以使用attribute equals selector:

$('form[name="create_form"]')

【讨论】:

  • 当有同名的表单时会发生什么?
  • @mcgrailm 这将选择所有这些。 name 属性不必是唯一的。 (这就是为什么有一个document.getElementsByName 方法——见复数“元素”。)
  • @mcgrailm,您可以遍历它们以选择您想要的,或者您可以在选择器中更具体。
  • 如果我这样做 alert($('form[name="create_form"]').serialize()); 显然是正确的形式。但它仍然不能解决我在 stackoverflow.com/questions/6044377/… 中遇到的实际问题。但是,当我被允许这样做时,我当然会接受你的解决方案 =)
猜你喜欢
  • 1970-01-01
  • 2017-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
相关资源
最近更新 更多