0

我有一个带有表单的 JSP 页面。当我提交表单时,它会构建并生成一个 JSON 字符串,我用它来进行 AJAX 发布。

但是我有一个问题,我需要从表单中获取多个值,并且我正在使用以下方法来执行此操作:

 .find('input[name=item1])
 .not('input[type=hidden]')  

如何执行此操作以获取名称为 item1、item2 和 item3 的输入?

我试过这个,但它没有工作?

 .find('input[name=item1][name=item2][name=item3]')

下面是我的代码:

    // Create JSON based data object
    $.fn.serializeObject = function()
    {
        var o = {};
        var a = this.serializeArray();
        $.each(a, function() {
            if (o[this.name] !== undefined) {
                if (!o[this.name].push) {
                    o[this.name] = [o[this.name]];
                }
                o[this.name].push(this.value || '');
            } else {
                o[this.name] = this.value || '';
            }
        });

        return o;
    };

    // Form Submission
    $('#form').submit( function() {

        // Create data array, used for building request message
        var data = {
            request: { 
                requestType: "request",
                fields: [ { 
                    itemX1 : '1',
                    itemX2 : '2',
                    itemX3 : '3'
                } ] 
            }
        };  

        // Create field array based variables for request message
        var fields = {
            fields: [ { 
                itemX1 : null,
                itemX2 : null,
                itemX3 : null
            } ] 
        };              

        // Get reqired data from the form submitted
        fields = $('#form')
        //.find('input')
        .find('input[name=lmBtId][name=my]')  
        .not('input[type=hidden]')    
        .serializeObject();

        // Set the field array variables with data
        fields.itemX1 = '1';
        fields.itemX2 = '2';
        fields.itemX3 = '3';

        // Update data array with newly updated field array
        data.request.fields = [fields];
        var finalData = JSON.stringify(data);
4

3 回答 3

2

你可以试试这个

.find('input[name^=item]');

它将选择名称以 item 开头的所有输入。

如果包含任何东西,您可以获得一个属性值,然后您可以使用

.find('selector[propname*=containingvalue']);

如果要选择以 then 结尾的值

.find('selector[propname$=endwith']);
于 2012-08-01T11:20:43.473 回答
2
$('input[name="test"], input[name="test2"]').each(function() {
    alert(this.value);
});​

这是一个JSFIDDLE

于 2012-08-01T11:20:56.167 回答
2

此页面将提供有关选择器的信息,

http://api.jquery.com/multiple-selector/

请试试这个

.find('input[name=item1],[name=item2],[name=item3]')

并为他们每个人添加一些东西,

.each(function(){
//code here
});
于 2012-08-01T11:21:13.470 回答