javascript - 仅当 Ajax 调用返回成功时才更改单选按钮

标签 javascript html ajax radio-button dom-events

在 HTML 表单中,我有一组单选按钮。在 onchange() 事件中,它通过 Ajax 调用推送其值。

然后,Ajax 调用到达服务器并根据调用发送的值进行处理。它返回字符串“success”“failure”

如果返回字符串是“success”,那么单选按钮应该保持不变。如果发生“失败”,它应该恢复到最后的位置。

我做了什么?好吧,我需要对复选框做类似的事情,并且在复选框的情况下很容易,我只需取消选中特定的复选框即可。我不知道如何记录单选按钮的最后位置...

有什么帮助吗?

最佳答案

每当您的最后一个 ajax 请求在选中单选按钮后返回成功数据时,请将选中的单选按钮的值保存到变量中。

当您的下一个请求返回失败数据时,只需从变量中获取值并选中相应的单选按钮即可。

使用 AJAX 请求更新代码

$(function(){

    var lastInput = 'r1';

    $('input').change(function(){

        var rdio = $(this);

        $.ajax({
          url: 'script.php',
          type: 'POST',
          dataType: 'json',
          'success' : function(response){
            if(response.status == 'success'){
                lastInput = rdio.val();
            }
            else{
                $('input[name="radio_group"][value="'+ lastInput +'"]').prop('checked', true);                
            }
          },
        });
    });
});

虚拟代码

$(function(){

    var lastInput = 'r1';

    $('input').change(function(){

        var rdio = $(this);

        switch(rdio.val()){
            case 'r1':
                lastInput = rdio.val();
                alert("Success");
                break;

            case 'r2':
                $('input[name="radio_group"][value="'+ lastInput +'"]').prop('checked', true);
                alert("Failure");
                break;

            case 'r3':
                lastInput = rdio.val();
                alert("Success");
                break;              
        }
    });
});

出于测试目的,我在没有 Ajax 请求的情况下完成了此操作,并使用 Switch/Case 语句进行了模拟,其中第二个条件显示了失败时的行为。

http://jsfiddle.net/rYxUs/

关于javascript - 仅当 Ajax 调用返回成功时才更改单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16536846/

相关文章:

html - 链接到域根目录的最佳方式是什么?

html - 位置为 :absolute; jumps because of CSS-animation 的元素

ajax - <div> 更新时如何播放声音

javascript - 表单数据在新页面中不可见 - PHP + Javascript

javascript - 如何在 Google Analytics 中监控外部小部件

javascript - SimpleModal:窗口调整大小会导致滚动条和模式内容的重绘

javascript - 创建复合 Javascript/HTML "widgets"

javascript - 在运行时检索评论?

jquery - 通过Jquery索引定位div内的img元素

javascript - ngx-bootstrap for angular - datepicker 如何在似乎没有任何效果时更改主题颜色