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

时间:2008-10-30 19:38:31

标签: javascript jquery ajax

一个简单的jQuery问题。

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

例如:

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

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

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

...

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

4 个答案:

答案 0 :(得分:2)

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()
});

修改

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

答案 1 :(得分:1)

您希望来自jQuery forms pluginformSerialize()(甚至是ajaxSubmit())。

答案 2 :(得分:1)

此处已经回答了这种灵活的方法,但您也可以使用当前的代码。 (请原谅我,如果这对你所寻找的东西来说太基础了。)

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

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

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

答案 3 :(得分:0)

<强>编辑:

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

要只访问xForm#元素,你可以像这样做一个选择器(你应该检查语法,我没有运行它,这只是一个例子):

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

表单输入[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