在提交之前切换HTML菜单值?

时间:2011-12-07 19:09:38

标签: javascript html

所以我有一个菜单,其中列出了每个国家及其缩写。我想发送全名(菜单选项的文本)而不是值。所以我尝试创建一个函数switchval()来执行此操作,但它没有切换值。有什么想法吗?

function switchval(){
    var countries = document.getElementById('countries');
    countries = countries.options[countries.selectedIndex].text;
    document.getElementById('countries').value = countries;
}

2 个答案:

答案 0 :(得分:1)

设置option元素的值。我更改了变量名称,使它们更有意义。请考虑您的编码风格并使用好的变量名称,并且不要将变量两次用于不同的数据类型(这是疯狂的)。另外,设置选项元素的值是完全错误的,我觉得打字很脏。

function switchval(){

    var selectEl = document.getElementById('countries');
    var optionEl = selectEl.options[selectEl.selectedIndex];
    var country = optionEl.text;

    optionEl.value = country;
}

答案 1 :(得分:0)

我将继续讨论buddhabrot所说的内容 - 更改value属性是错误的,可能并非所有浏览器都支持。

我会使用hidden元素并将text属性设置为该属性,将select元素的名称更改为“countries-select”并将隐藏元素设置为“国家”。

这样,当您的表单发布时,它将具有表单处理器的正确“名称”,而且您的代码中将有一个可靠的方法。