我有一个指定值的下拉列表,当用户更改该值时,会警告他们这样做。如果他们单击“确定”,则下拉列表中的文本会更改。如果他们单击“取消”,则所选选项将恢复为原始选择。这在Firefox中完美运行,但如果用户在Chrome和IE中选择“取消”,则会删除下拉文本,但会保留该值。如果用户单击“确定”,则它也适用于所有浏览器。是否有IE和Chrome特定的东西,我需要使用下面标记的行,以使其跨浏览器工作?
(我正在使用原型库)
在Select标记中使用onChange="typeChange(this)"
调用的JavaScript函数:
function typeChange(element) {
var oldValue = element.defaultValue;
var newValue = element.value;
var oldDisplayValue=jQuery('select[name="type"] option').map(function() {
if (jQuery(this).attr('defaultSelected')==true)
return this }).get(0).text;
var newDisplayValue = element.options[element.selectedIndex].text
if (window.confirm('Are you sure?)) {
element.defaultValue = newValue;
element.options[element.selectedIndex].text = newDisplayValue;
} else {
element.value = element.defaultValue;
***element.options[element.selectedIndex].text = oldDisplayValue;***
}
}
答案 0 :(得分:0)
您应该设置selectedIndex,这是实现此目标的更可靠方法。你需要遍历这些项目以找到你正在寻找的那个的索引,这篇文章将帮助你:
JavaScript - How to set selectedIndex of select element using display text?