我正在使用国家/地区选择框,当用户选择一个国家/地区时,会出现添加分支链接,并且用户在该国家/地区下添加分支,但是当用户想要更改国家/地区时,则应销毁有关该国家/地区的所有分支。在更改国家/地区之前,会出现一个确认框并显示警告..一切正常,但是
如果我在确认框中单击“取消”,则分支仍保留在那里,但选择框值更改为新国家/地区(即使我单击取消)
我需要,如果用户取消更改国家/地区,则选择框值也将是以前的国家/地区。
请告诉我如何用 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> </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> </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
});
Or use .data()
as @Gaby https://stackoverflow.com/users/128165/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
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)