jquery – 如果我说不要确认,如何防止更改selectbox值

前端之家收集整理的这篇文章主要介绍了jquery – 如果我说不要确认,如何防止更改selectbox值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用一个国家的选择框,当用户选择一个国家,然后添加分支链接出现,用户在该国家添加分支,但是当用户想要更改国家,那么该国家的所有分支应该被破坏.在更改国家之前,确认框出现并显示警告.一切都正常,但是

如果我在确认框上点击“取消”,那么分支仍然存在,但是选择框值更改为新的国家(即使我点击取消)

我需要,如果用户取消更改国家,那么选择框值也将是以前的国家.

请告诉如何使用JQuery
我的代码如下

<form>
<table>
    <tr>
       <td >Select Country :</td>
       <td >
       <select name="country_id" id="country"  class="selectBox" title="Please select country" validate="required:true" onchange="javascript:showBranch();" >
         <option value="" >Select Country </option>
         <option value="00002" > Afghanistan</option>
         <option value="00054" > Croatia</option> 
         <option value="00060" > Dominica</option> 
         <option value="00062" > Ecuador</option> 
         <option value="00064" > El Salvador</option> 
         <option value="00067" > Estonia</option> 
         <option value="00099" > India</option> 
       </select>
       </td>
   </tr>
   <tr>
       <td>&nbsp;</td>
       <td>
        <div id="branches">
        <!-- Raw Branch Details-->
             <div><span><a title="First Branch" href="">First</a></span></div>
             <div><span><a title="Second Branch" href="">Second</a></span></div>
             <div><span><a title="Third Branch" href="">Third</a></span></div>                  
        </div>
        <div id="brancherror"></div>
       </td>
   </tr>
   <tr>
    <td>&nbsp;</td>
    <td align="left">
        <span id="branchLink" style="display:none" >
        <a href="#" class="thickBox" id="branchhref">Add Branch(es)</a></span>
    </td>
  </tr>
 </table>
 </form>

function showBranch()
    {   
        var countryid = jQuery('#country').val();
        if (jQuery("#branches>div").size())
        {
            if (confirm('If country has been changed then data corresponding to present branches will lost.Do you want to continue?'))
            {
                jQuery('#branches').html('');
            }

            jQuery('#branchhref').attr({href: "index.PHP?option=com_advertise&view=createbranch&format=raw&country=" + countryid + "&KeepThis=true&TB_iframe=true&height=500&width=900",title: 'Add Branch'});
        }

        else
        {
            jQuery('#branchhref').attr({href : "index.PHP?option=com_advertise&view=createbranch&format=raw&country=" + countryid + "&KeepThis=true&TB_iframe=true&height=500&width=900",title:'Add Branch'});
            return true;
        }
        jQuery('#branchLink').show();   
    }

解决方法

您可以只存储以前的值,并根据需要将其设置回来,如下所示:
var countryVal;
$("#country").change(function() {
  var newVal = $(this).val();
  if (!confirm("Are you sure you wish to destroy these country branches?")) {
    $(this).val(countryVal); //set back
    return;                  //abort!
  }
  //destroy branches
  countryVal = newVal;       //store new value for next time
});

或者使用.data()作为@Gaby建议,像这样:

$("#country").change(function() {
  var newVal = $(this).val();
  if (!confirm("Are you sure you wish to destroy these country branches?")) {
    $(this).val($.data(this,'val')); //set back
    return;                           //abort!
  }
  //destroy branches
  $.data(this,'val',newVal);        //store new value for next time
});

猜你在找的jQuery相关文章