如何在jQuery中引用表单中的输入

Posted

技术标签:

【中文标题】如何在jQuery中引用表单中的输入【英文标题】:How to reference an input within a form in jQuery 【发布时间】:2010-09-20 01:41:24 【问题描述】:

一个简单的 jQuery 问题。

我在一页上有几个相同的表格(除了它们的名字),每个表格都有一些隐藏的输入。我想通过使用表单名称和输入名称来引用它们。 (输入名称在我的页面中不是唯一的)

例如:

var xAmt = $('#xForm'+num).('#xAmt');

我真的很想将这些值提供给 AJAX POST

    $.ajax(
      url: "X.asp",
      cache: false,
      type:  "POST",
      data:  "XID=xID&xNumber=xNum&xAmt=xAmt",

...

如果我能更好地获取 AJAX 调用中的值。

【问题讨论】:

为什么要花钱购买可以在 jQuery 网站上免费获得的东西? :-) 没有找到有用的信息。官方文档好还是您在谈论示例/教程 我的意思是官方文档。我已经摆脱了购买像这样的不稳定主题的书籍的想法。此外,书籍缺少一个重要功能:您无法对它们进行全文搜索(除了“用你的眼睛”)。 【参考方案1】:
function queryX( args ) 
    var queryString = [ "XID=", args.XID, "&xNumber=", args.xNumber, "&xAmt=", args.xAmt ].join("");
    $.ajax(
        url: "X.asp",
        cache: false,
        type:  "POST",
        data:  queryString,
        success : function( data ) 
            return data;
        
    );

var myReturnData = queryX(
    XID : $("input[name='XID']").val(),
    xNumber : $("input[name='xNumber']").val(),
    xAmt : $("input[name='xAmt']").val()
);

编辑:

这为您提供了最大的灵活性,如果只有输入值会改变(但查询字符串变量不会),那么您可以传入任何您想要的值。

【讨论】:

【参考方案2】:

看起来你想要来自jQuery forms plugin 的formSerialize()(甚至是ajaxSubmit())。

【讨论】:

【参考方案3】:

这里已经回答了执行此操作的灵活方法,但您也可以使其与您当前的代码一起使用。 (如果这对于您正在寻找的东西来说太基本了,请原谅我。)

使用 CSS 后代选择器(空格)从唯一的表单名称向下钻取:

var xAmt = $('#xForm'+num+ ' #xAmt').val();

对您需要的每个值重复并调用 $.ajax,就像您正在做的那样。

【讨论】:

当我这样做时,没有分配 xAmt。当我尝试输出警报以测试它时,它显示 [Object object]【参考方案4】:

已编辑:

您需要先将它们全部选中,然后才能使用它们。

要仅访问 xForm# 元素,您可以执行这样的选择器(您应该检查语法,我没有运行它,这只是一个示例):

$('form input[name*='xAmt']  ').each(function() alert( $(this).val() ); alert( $(this).parent().attr('name') + $(this).parent().attr('id') ); );

表单 input[name*='xAmt'] 表示选择表单内包含术语 xAmt 的任何元素。您还可以使用开头、结尾等。请参阅下面的链接。

在每个循环中,您可以将每个循环作为 $(this) 访问。你可以通过 $(this).parent() 访问它的父表单,这样你就可以知道输入在哪个表单中。

您可以在循环中构建数据,或者对它们执行其他操作,然后发布帖子。

见:

http://docs.jquery.com/Selectors/attributeContains#attributevalue

http://docs.jquery.com/Selectors

http://docs.jquery.com/Each

http://docs.jquery.com/Attributes/attr#name

http://docs.jquery.com/Traversing/parent#expr

【讨论】:

以上是关于如何在jQuery中引用表单中的输入的主要内容,如果未能解决你的问题,请参考以下文章

当单个表单中有多个下拉字段时,如何在 JQuery 中为选择标记引用选择器?

如何使用 javascript/jquery 禁用表单中的所有内容?

如何使用 HtmlAgilityPack 获取表单中的所有输入元素而不会出现空引用错误

如何在 Django 表单输入字段中设置事件处理程序

如何使用jQuery在关联数组中获取表单的输入值

在 PHP 中提交表单时如何保留输入字段中的值?