0

フォームのある JSP ページがあります。フォームを送信すると、AJAX 投稿に使用する JSON 文字列が作成および生成されます。

ただし、問題があります。フォームから複数の値を取得する必要があり、これを行うために次を使用しています。

 .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']);

で終わる値を選択したい場合

.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 に答える