【问题标题】:How to write success statement in ajax jquery to change radiobuttons?如何在 ajax jquery 中编写成功语句来更改单选按钮?
【发布时间】:2016-02-05 03:46:59
【问题描述】:

我首先有一些带有几个单选按钮的 html 代码,每个单选按钮都附有跨度:

<div id="output2">
     <input type="radio" name="tid" value="1"><span class="green">Span 1</span>
                <input type="radio" name="tid" value="2"><span class="green">Span 2</span>
                <input type="radio" name="tid" value="3"><span class="green">Span 3</span>
                <input type="radio" name="tid" value="4"><span class="green">Span 4</span>
                <input type="radio" name="tid" value="5"><span class="green">Span 5</span>

我有一个 ajax 请求向 php 脚本发送请求,成功部分在这里是空的,因为这是我遇到问题的地方。

$.ajax({
       type: "POST",
                            url: "fetch_time.php",
                            data: "datum_id=" + datum_id,                   
                            beforeSend: function() {
                                $('#output2').html('<img src="loader.gif" alt="" width="24" height="24">');
                            },
                            success: function(json) {   
        });

我从 php 脚本以 json 文件的形式获得返回值,例如:

[{"tid_id":"4"},{"tid_id":"5"}] 

我想要做的是使用 json 文件中的这些值 4 和 5 并将它们与单选按钮的值进行比较,如果 json 文件中的值与该特定单选按钮上的值相同我希望禁用单选按钮并将相应跨度的类从 class="green" 更改为 class="red" 或者只是将单选按钮的可见性和跨度更改为无。

【问题讨论】:

    标签: javascript jquery html ajax


    【解决方案1】:
    $.ajax({
        type: "POST",
        url: "fetch_time.php",
        data: "datum_id=" + datum_id,
        dataType: 'JSON',
        beforeSend: function () {
            $('#output2').html('<img src="loader.gif" alt="" width="24" height="24">');
        },
        success: function (arrResponseData) {
            $.each(arrResponseData, function () {
                var intValue = this.tid_id;
                $("input:radio[value=" + intValue + "]")
                        .prop("disabled", true)
                        .children("span")
                        .prop("class", "red")
    
            })
        }
    });
    

    【讨论】:

    • 谢谢你,阿里,是的,基础工作,我必须改变一些东西,使它更适合我的条件,但你把箭头指向了正确的方向,我感谢你,但我的声誉并不高还不够投票给你,我只有 8 分,但只要我得到我的代表,它就会得到投票。
    • 如果它符合您的要求,那么请投票给我的答案。谢谢
    【解决方案2】:

    我认为,你需要做这样的事情:

    success: function(json) {
        var ids = [];
    
        json.forEach(function(i){
            ids.push(i.tid_id);
        });
    
        var $inputs = $('#output2 > input');
        $inputs.forEach(function(item){
            if(ids.indexOf(item.val()) >= 0) {
                item.addClass('red');
            }
        })
    }
    

    【讨论】:

      【解决方案3】:

      我想展示它完成后的样子,现在完美运行!!!

      $.ajax({
                                  type: "POST",
                                  url: "fetch_time.php",
                                  data: "datum_id=" + datum_id,
                                  dataType: 'JSON',
                                   beforeSend: function() {
                                   $("input:radio").prop("disabled", false)
                                                   .next("span")
                                                   .prop("class", "green");
                                                              },
                                 success: function (arrResponseData) {
                                      $.each(arrResponseData, function () {
                                          var intValue = this.tid_id;
                                          $("input:radio[value=" + intValue + "]")
                                                  .prop("disabled", true)
                                                  .next("span")
                                                  .prop("class", "red");
      

      【讨论】:

        猜你喜欢
        • 2021-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-16
        • 2022-01-22
        • 2013-04-26
        • 1970-01-01
        相关资源
        最近更新 更多