返回 div 中输入字段的所有值

发布于 2024-10-19 02:35:16 字数 688 浏览 4 评论 0原文

我需要使用 div 层中的所有值输入字段形成一个字符串 - 使用 jquery

<div id="selection">
   <input class="field" id="1" type="hidden" value="A"/>
   <input class="field" id="2" type="hidden" value="B"/>
   <input class="field" id="3" type="hidden" value="C"/>
   <input class="field" id="4" type="hidden" value="D"/>
</div>

<input type="button" id="button" value="generate"/>


这种形式:

id[1]=val[A]&id[2]=val[b]...so on


jquery:

 $(function() {
      $('#button').click(function() {
         //function goes here...


      });
    });

I need to form a string with the all values input fields within a div layer - using jquery

<div id="selection">
   <input class="field" id="1" type="hidden" value="A"/>
   <input class="field" id="2" type="hidden" value="B"/>
   <input class="field" id="3" type="hidden" value="C"/>
   <input class="field" id="4" type="hidden" value="D"/>
</div>

<input type="button" id="button" value="generate"/>

in this form:

id[1]=val[A]&id[2]=val[b]...so on

jquery:

 $(function() {
      $('#button').click(function() {
         //function goes here...


      });
    });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

霞映澄塘 2024-10-26 02:35:16

如果您使用 name 代替(或除了)id

<input class="field" name="1" type="hidden" value="A"/>
<input class="field" name="2" type="hidden" value="B"/>
<input class="field" name="3" type="hidden" value="C"/>
<input class="field" name="4" type="hidden" value="D"/>

您可以使用 serialize

$('#button').click(function() {
   alert($('#selection input').serialize());
});

如果

1=A&2=B&3=C&4=D

您确实想要具有 id[x] 结构,则可以为元素指定名称 id[1]id[2] 等。

编辑:哦,不知何故我忽略了您也想要 val[x] 。仅当您确实将 val[x] 作为字段中的值时,这对于 serialize 来说是不可能的。但为什么需要这样一个混乱的结构呢?


顺便说一句。您的按钮缺少 type="button"

If you use name instead of (or in addition to) id:

<input class="field" name="1" type="hidden" value="A"/>
<input class="field" name="2" type="hidden" value="B"/>
<input class="field" name="3" type="hidden" value="C"/>
<input class="field" name="4" type="hidden" value="D"/>

you can use serialize:

$('#button').click(function() {
   alert($('#selection input').serialize());
});

which gives you

1=A&2=B&3=C&4=D

If you really want to have the id[x] structure, you can give the elements the names id[1], id[2] etc.

Edit: Oh, somehow I overlooked that you want val[x] as well. This would not be possible with serialize, only if you really put val[x] as value in the fields. But why do you need such an obfuscated structure?


Btw. you are missing type="button" at your button.

能否归途做我良人 2024-10-26 02:35:16
<script>
    $(function() {
        $('#button').click(function() {

            var str = new Array();
            var count = 0;

            $('.field').each(
                function()
                {                   
                    str[count] = 'id['+$(this).attr('id')+']=val['+$(this).val()+']';
                    count++;
                }
            );
            alert(str.join('&'))
        });
    });
</script>
<div id="selection">
   <input class="field" id="1" type="hidden" value="A"/>
   <input class="field" id="2" type="hidden" value="B"/>
   <input class="field" id="3" type="hidden" value="C"/>
   <input class="field" id="4" type="hidden" value="D"/>
</div>
<input id="button" value="generate" type="button"/>
<script>
    $(function() {
        $('#button').click(function() {

            var str = new Array();
            var count = 0;

            $('.field').each(
                function()
                {                   
                    str[count] = 'id['+$(this).attr('id')+']=val['+$(this).val()+']';
                    count++;
                }
            );
            alert(str.join('&'))
        });
    });
</script>
<div id="selection">
   <input class="field" id="1" type="hidden" value="A"/>
   <input class="field" id="2" type="hidden" value="B"/>
   <input class="field" id="3" type="hidden" value="C"/>
   <input class="field" id="4" type="hidden" value="D"/>
</div>
<input id="button" value="generate" type="button"/>
千纸鹤带着心事 2024-10-26 02:35:16

另一种解决方案可以提供精确指定的输出并优雅地处理缺失的属性:

在 jsFiddle 上查看它的实际效果

$(function() {
    $('#button').click(function() {

        var ResStr  = $('#selection input.field');

        ResStr  = ResStr.map (function () {
            var jThis   = $(this);
            var ID      = jThis.attr ("id");
            if (!ID)    ID  = "null";

            var VAL     = jThis.val ()
            if (!VAL)   VAL  = "null";

            return 'id[' + ID + ']=val[' + VAL + ']';

        } ).get () .join ('&');

        alert (ResStr);

    } );
} );

Another solution that gives the exact specified output and handles missing attributes gracefully:

See it in action at jsFiddle:

$(function() {
    $('#button').click(function() {

        var ResStr  = $('#selection input.field');

        ResStr  = ResStr.map (function () {
            var jThis   = $(this);
            var ID      = jThis.attr ("id");
            if (!ID)    ID  = "null";

            var VAL     = jThis.val ()
            if (!VAL)   VAL  = "null";

            return 'id[' + ID + ']=val[' + VAL + ']';

        } ).get () .join ('&');

        alert (ResStr);

    } );
} );
盗梦空间 2024-10-26 02:35:16

这将返回 div 内所有输入的所有 html 组合

var h = '';
var c = 0;
$('#selection input.field').each(function(){
 h += '&id['+(++c)+']=val['+$(this).val()+']';
});
h = h.slice(1);

alert(h);

this returns all the html combined of all the inputs inside the div

var h = '';
var c = 0;
$('#selection input.field').each(function(){
 h += '&id['+(++c)+']=val['+$(this).val()+']';
});
h = h.slice(1);

alert(h);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文