Javascript 如果用户不';t确认对话框

Javascript 如果用户不';t确认对话框,javascript,jquery,html,Javascript,Jquery,Html,当用户确认时,会触发ajax,但如果用户取消确认对话框,则尽管没有触发ajax,但选择标记值仍会更改。我想要的东西,如果用户取消,然后选择标签应该保留它的前一个值。我有这个: <select name="ss" id="<?=$row['id'];?>" onchange="_changeStatus(this.value,'<?=$row['id'];?>');"> <option value='Paid'>Paid</option&

当用户确认时,会触发ajax,但如果用户取消确认对话框,则尽管没有触发ajax,但选择标记值仍会更改。我想要的东西,如果用户取消,然后选择标签应该保留它的前一个值。我有这个:

<select name="ss" id="<?=$row['id'];?>" onchange="_changeStatus(this.value,'<?=$row['id'];?>');">
   <option value='Paid'>Paid</option>
   <option value='Verified'>Verified</option>
   <option value='Inprocess'>Inprocess</option>
   <option value='Chargeback'>Chargeback</option>
</select>

应该是这样的:

<select defaultValue="Paid" name="ss" id="<?=$row['id'];?>" onchange="_changeStatus(this,'<?=$row['id'];?>');">
   <option value='Paid'>Paid</option>
   <option value='Verified'>Verified</option>
   <option value='Inprocess'>Inprocess</option>
   <option value='Chargeback'>Chargeback</option>
</select>


请注意,我让它尽可能的相似,所以你会得到一个概念。一般来说,在使用jQuery时内联绑定事件并不是一个好的做法,如果没有必要,还可以将javascript与jQuery混合使用。

else$(“#id_of_select”).val(v)@ParthShah not REALYV变量中存储了新值创建一个新的全局变量以存储select的旧值。在ajax之后将其更新为新值,或者在确认上的
else
中将select重置为旧值。无需使用全局变量imo。。。最好将其保留为属性之前没有类似于
value\u的属性
Oh抱歉。。。错过
$
,已修复
value\u before
是一个人工属性,用于保留以前的值。。。如果它还没有定义,因为没有以前的值,它默认为选择默认值。请注意,
onchange
值也发生了变化。效果不错!但是select标记值变为空而不是以前的值您可能需要定义defaultValue<代码>
<select defaultValue="Paid" name="ss" id="<?=$row['id'];?>" onchange="_changeStatus(this,'<?=$row['id'];?>');">
   <option value='Paid'>Paid</option>
   <option value='Verified'>Verified</option>
   <option value='Inprocess'>Inprocess</option>
   <option value='Chargeback'>Chargeback</option>
</select>
function _changeStatus(vobj,i){
    var v = vobj.value;
    if($(vobj).attr('value_before')){
        var vbefore = $(vobj).attr('value_before');
    }else{
        var vbefore = vobj.defaultValue;
    }
    if(confirm("Sure to Update")){
        $.ajax({
            type: 'post',
            url: 'change-status.php',
            data: {val:v,eid:i,actionid:1},
            success: function (res){
                if(res!="scr"){
                    alert("Unexpected Error, Page will be refreshed !");
                    window.location.reload();
                }else{
                    $(vobj).attr('value_before',v);
                }
            }
        });
    }else{
        $(vobj).val(vbefore);
    }
}