-1

選択ボックスが 1 つあります。その変更イベントで、確認ボックスを呼び出します。キャンセルボタンをクリックすると、変更された値のままになります。そのため、ページ全体ではなく選択ボックスのみを更新したいと思います。

function statusChanged(obj,id){
    $(obj).change(function() {
        var answer = confirm ("Are you sure update Status?");
        var status;
        if(answer){
            status=$(this).val();
            //alert(status);
            ajaxUpdate("service-providers.php", {action:"updatestatus",'status': status,'id':id}, function(data) {
            if(data.type=="success") {
                    $("#notify").notification({caption:"Status Updated  Successfully.", type:"information", sticky:false ,onhide:function(){
                    window.location="service-providers.php";
                }
                }); 
            }
            });
        }
        else{
            // here i want to refresh select box
        }
});
}

html コード:

<select id="status1" name="status1"  style="width:140px;" onChange="statusChanged(this,<?php echo $applicationid; ?>);">        
                                                    <?php
                                                        if($status==3 || $status==4)
                                                            echo "<option value='4'>Submitted</option>";
                                                        else
                                                            echo "<option value='0'>Select</option>";
                                                    ?>
                                                    <option value="2" <?php if($status==2) echo "selected='selected'"; ?> >Approved</option>
                                                    <option value="3" <?php if($status==3) echo "selected='selected'"; ?> >Rejected</option>
                                               </select>
4

2 に答える 2

0

ページの読み込み後:

$('select').each(function() {
 $(this).attr('original_data', $(this).val());
});

そしてあなたの機能で

$(this).val(this.attr('original_data'));

チェック済み。完璧に動作します。

于 2013-03-19T09:38:35.237 に答える
0

このコードを使用しないと、選択ボックスがリセットされます。

これはうまくいきます

$('#SELECTBOX_ID').prop('selectedIndex',0);

http://jsfiddle.net/TmJCE/10/動作デモについては、 を参照してください。

また、このコードをローカルに実装しました。主に2つの変更を行い、選択からonchangeを削除しました。2つ目は、確認ボックスでキャンセルをクリックするだけで作業したいajax cozを使用しませんでした。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
      jQuery(document).ready(function () {
         jQuery("#status1").change(function() {
         var answer = confirm ("Are you sure update Status?");
         var status;
         if(answer){
           status=$(this).val();
            //I have did not call ajax
         }
         else{
          jQuery('#status1').prop('selectedIndex',0);
         }
     });
  });
 </script>
 <?php
    $status = 0; // I temporary added t 
  ?>
  <select id="status1" name="status1"  style="width:140px;" >
  <?php
     if($status==3 || $status==4)
        echo "<option value='4'>Submitted</option>";
     else
      echo "<option value='0'>Select</option>";
    ?>
     <option value="2" <?php if($status==2) echo "selected='selected'"; ?> >Approved</option>
     <option value="3" <?php if($status==3) echo "selected='selected'"; ?> >Rejected</option>
   </select>
于 2013-03-19T09:37:49.687 に答える