【问题标题】:Format ajax success array of data格式化ajax成功数据数组
【发布时间】:2020-04-02 17:05:24
【问题描述】:

我想格式化从 ajax 请求返回的数据,以将按钮的状态更改为禁用。当有人从日期选择器中选择日期时发送请求。

它以字符串形式返回包含时间的数据对象数组。我想检查每个时间值并禁用具有相关时间的按钮。我使用了引导单选切换按钮组。

如何通过读取 ajax 检索数组来做到这一点?

这是我的 ajax 代码,

    const $datepicker = $('#date').datepicker({
    format: 'yyyy-mm-dd'
    });

    $datepicker.on('changeDate', function(e) {            
    $.ajax({
    type: "POST",
    url: '/process_date',
    data: {
        date: convert(e.date.toString()),
    },
    success: function(result) {
       console.log(result);
    },
    error: function (error) {
        console.log(error);
    }
});

function convert(str) {
    var date = new Date(str),
        month = ("0" + (date.getMonth()+1)).slice(-2),
        day  = ("0" + date.getDate()).slice(-2);
    return [ date.getFullYear(), month, day ].join("-");
}
});

console.log 输出

我想根据 ajax 结果禁用状态的按钮(如上图)

` 08:00 上午 08:30 上午 09:00 上午 上午 09:30 10:00 AM 上午 10:30 11:00 AM

                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="8" autocomplete="off" value="11:30AM"> 11:30 am
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="9" autocomplete="off" value="12:00AM"> 12:00 am
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="10" autocomplete="off" value="12:30PM"> 12:30 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="11" autocomplete="off" value="11:00PM"> 01:00 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="12" autocomplete="off" value="01:30PM"> 01:30 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="13" autocomplete="off" value="02:00PM"> 02:00 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="14" autocomplete="off" value="02:30PM"> 02:30 pm
                        </label>

                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="15" autocomplete="off" value="03:00PM"> 03:00 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="16" autocomplete="off" value="03:30PM"> 03:30 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="17" autocomplete="off" value="04:00PM"> 04:00 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="18" autocomplete="off" value="04:30PM"> 04:30 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="19" autocomplete="off" value="05:00PM"> 05:00 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="20" autocomplete="off" value="05:30PM"> 05:30 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="21" autocomplete="off" value="06:00PM"> 06:00 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="22" autocomplete="off" value="06:30PM"> 06:30 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="23" autocomplete="off" value="07:00PM"> 07:00 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="24" autocomplete="off" value="07:30PM"> 07:30 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="25" autocomplete="off" value="08:00PM"> 08:00 pm
                        </label>
                        <label class="btn btn-outline-primary">
                            <input type="radio" name="timebtn" id="26" autocomplete="off" value="08:30PM"> 08:30 pm
                        </label>
                </div>
            </div>`

我也想知道,如何使用 jquery 更改按钮状态。 请帮我。提前致谢。

【问题讨论】:

  • 您的代码图像的格式很差,因为它们难以复制。
  • 如何将其格式化为更好的方式?
  • 复制粘贴你的JS代码,编辑起来就方便了。
  • function displaytime(data){ if(data[0].time == "09:30AM"){ $('#timeslots').find('#4').attr("disabled", true); } 我试过这段代码来禁用按钮,但它不起作用?有什么问题?
  • 将 JS 代码复制并粘贴到您作为图像发布的位置。然后直接发布到问题中

标签: javascript php html ajax laravel


【解决方案1】:

1 要禁用提交按钮,您只需为提交按钮添加禁用属性即可。

$("#button").attr("disabled", true);

2 要启用禁用的按钮,请将 disabled 属性设置为 false,或删除 disabled 属性。

$('#button').attr("disabled", false);   
or
$('#button').removeAttr("disabled");

在您的代码中:

 success: function(result) {
   console.log(result);
   $("#1").attr("disabled", true); // button 1 disable
}

【讨论】:

  • 谢谢。我想禁用针对 ajax 返回数据的按钮。我怎样才能做到这一点?我可以使用开关盒吗?
  • function displaytime(data){ if(data[0] == "09:30AM"){ $("#1").attr("disabled", true); } } 我想做这样的事情,但这不起作用。
  • 尝试我的代码,但成功添加 if(data=="09:30AM"){ code }
猜你喜欢
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多