仅当Ajax Call返回success时才更改单选按钮



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

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

如果返回字符串是"success",那么单选按钮应该保持不变。在"failure"的情况下,它应该恢复到最后的位置。

我做了什么?我需要对复选框做类似的事情,这很简单,我只需要取消选中特定的复选框。我不知道如何记录单选按钮的最后位置…

帮忙吗?

当您最后一次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);                
            }
          },
        });
    });
});
<<p> 伪代码/strong>
$(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/

尝试使用标志变量来保留先前选定的单选按钮。

如果ajax返回失败,则尝试使用flag变量检查前一个单选按钮。

使用以下代码检查前一个单选按钮

$("input[name='radioButtonName'][value='valurFrom FlagVariable']").attr("checked", "checked");

您可以尝试这样做:

var radioValue = $("input[type='radio']").attr('checked');

,然后成功:

$("input[type='radio']").attr('checked', 'checked');

失败:

$("input[type='radio']").removeAttr('checked');

对我来说很好。

$("输入:无线电[name = '剖面']").click(函数(){

警报($).val ());

});

最新更新