【问题标题】:Replace inputs based on JSON data returned根据返回的 JSON 数据替换输入
【发布时间】:2011-06-11 00:35:12
【问题描述】:

我正在通过 ajax 提交一些表单数据并返回一个 JSON 数组,其中包含有效的 ID 号。

使用这些 id 编号,我需要用包含确认消息的 div 元素将输入复选框替换为对应的值。

我的 HTML 如下所示:

<input type="checkbox" name="users[]" value="26">
<input type="checkbox" name="users[]" value="27">
<input type="checkbox" name="users[]" value="28">

ajax 提交返回的数据如下:

["28","26"]

我需要将输入元素替换为与这些 id 匹配的值,并使用如下所示的 div 元素:

<div class="invited">Invited!</div>

【问题讨论】:

    标签: jquery ajax json


    【解决方案1】:

    我更喜欢这种方式:

    var ids=[26,28];
    
    $.each(ids,function(index, el){
       $("input[value='"+el+"']").replaceWith('<div class="invited">Invited!</div>')
    });
    

    【讨论】:

    • 谢谢,这个也可以,而且在提交单个值时不会出现同样的错误。
    【解决方案2】:
    var yourArray = ['28', '26'];
    
    $('input[name="users[]"]').each(function(i)
    {
        for (var i = 0, ilen = yourArray.length; i < ilen; i++)
        {
            if ($(this).val() == yourArray[i])
            {
                $(this).replaceWith('<div class="invited">Invited!</div>');
            }
        }
    });
    

    【讨论】:

    • 抱歉多次修改,赶时间! :)
    • 有效,但仅在提交超过 1 个输入时才有效。如果我只提交一个值,则不会发生任何事情。
    • 对我来说效果很好,但 kingjiv 的方法肯定更短。
    猜你喜欢
    • 2021-07-20
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2018-12-26
    相关资源
    最近更新 更多