[英]How to find dropdown's selected option's index/value using javascript, before the selection change
我不确定我的问题的标题是否足够有意义,所以这是我的问题:我从服务器端动态生成了一个下拉列表,如下所示:
sb.append("<SELECT NAME='selectedQAStatuses' id='selectedReleaseQAStatuses' onchange='javascript:changeReleaseQAStatus(\""+releaseId+"\",\""+depEventSeq+"\",this);' >");
sb.append("<OPTION>Please select a QA status...</OPTION>");
for (String status : statusArray) {
if(status.equals(releaseStatus))
sb.append("<OPTION VALUE='"+status+"' selected>"+status+"</OPTION>");
else
sb.append("<OPTION VALUE='"+status+"'>"+status+"</OPTION>");
}
现在,javascript:changeReleaseQAStatus()被调用。 在此javascript方法中,我正在调用Confirm()以查看用户是否确定。 如果用户在确认弹出窗口中选择“确定”,则从“ IF”块中进行Ajax调用等操作,但是如果用户在确认弹出窗口中选择“取消”,则从“ ELSE”块中返回JS方法。
但是,在“取消”方案中,我看到尽管用户似乎已“取消”了他的选择,但仍在浏览器屏幕上,该下拉菜单似乎将新选项显示为“已选择”。 因此,我认为,在Javascript的“ ELSE”块中,我应该写一些东西,将选择内容还原为原始选择内容。 当页面在浏览器上呈现后,我应该如何“记住”下拉菜单的原始值,以便可以在“ ELSE”块中使用该初始值来恢复下拉菜单。
我的Javascript处理“确定”和“取消”:
function changeReleaseQAStatus(releaseSeq, depEventSeq, element1){
var selectedIndex = element1.selectedIndex;
var selectedStatus = element1.options[selectedIndex].value;
if (confirm("Do you want to change Release QA status to \"" + selectedStatus + "\" ?")){
url = contextPath + "/changeQAStatusOfRelease.action?selectedStatus="+selectedStatus+"&releaseSeq="+releaseSeq+"&depEventSeq="+depEventSeq;
ajaxUpdate({url:url,
elementId:'compReleasesDtlsDiv',
});
}else{
/// No Code needed to execute here...
}
}
通过使用JavaScript,您可以使用类似这样的东西
var arr = document.getElementsById('select_id');
alert(arr[0].options[arr[0].selectedIndex].value);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.