Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript和<;选项>;_Javascript_Html - Fatal编程技术网

javascript和<;选项>;

javascript和<;选项>;,javascript,html,Javascript,Html,我有以下JavaScript <form> <select id="sel"> <option value="1">item_1</option> <option value="2">item_2</option> <option value="3">item_3</option> </select> <div id="show"></div&

我有以下JavaScript

<form>  
<select id="sel">
    <option value="1">item_1</option>
    <option value="2">item_2</option>
    <option value="3">item_3</option>
</select>
<div id="show"></div>

</form>

<script type="text/javascript">
var sel = document.getElementById('sel');
sel.onchange = function() {
  var show = document.getElementById('show');
  show.innerHTML = this.value;
};
</script>

我怎样才能让它工作呢?

可能是:

show.innerHTML = this.options[this.selectedIndex].value;

这可能是:

show.innerHTML = this.options[this.selectedIndex].value;

如果列表不是动态生成的,为什么不在填充的值上使用“If-else”构造或“switch”构造并显示您喜欢的内容?

如果列表不是动态生成的,为什么不使用“If-else”构造或“switch”在填充的值上构造并显示任何您喜欢的内容?

对要提交到服务器的值使用
value
属性,因为
value
意味着包含一个字符串,该字符串将由计算机作为表单的一部分进行解释


使用其他属性将人类可读文本与
关联
title
longdesc
将是不错的选择。

使用
value
属性作为要提交给服务器的值,因为
value
意味着包含一个字符串,该字符串将由计算机作为表单的一部分进行解释


使用其他属性将人类可读文本与
关联
title
longdesc
将是不错的选择。

如果可以,我建议使用jQuery。如果希望能够使用兼容html5的浏览器,可以使用
元素上的数据属性。这样,您就能够存储任何您发现有用的属性


如果可以,我建议您使用jQuery。如果希望能够使用兼容html5的浏览器,可以使用
元素上的数据属性。这样,您就能够存储任何您发现有用的属性


如果要显示下拉列表中的文本,可以使用.innerHTML而不是.value。如果希望显示完全不同的内容,则需要一个查找表或类似的内容—使用jQuery可能更容易。

如果要显示下拉列表中的文本,可以使用.innerHTML而不是.value。如果您希望显示完全不同的内容,则需要一个查找表或类似的内容—使用jQuery可能更容易。

如果您应用@Simon所说的内容,您可以尝试以下操作:

sel.onchange = function() {
   var show = document.getElementById('show');
   show.innerHTML = this.options[this.selectedIndex].getAttribute('value2');
}

如果你应用@Simon所说的,你可以尝试以下方法:

sel.onchange = function() {
   var show = document.getElementById('show');
   show.innerHTML = this.options[this.selectedIndex].getAttribute('value2');
}
修订版HTML:

<form>  
    <select id="sel">
        <option value="1" data-unit="kg">item_1</option>
        <option value="2" data-unit="kph">item_2</option>
        <option value="3" data-unit="m2">item_3</option>
    </select>
</form>

<div id="show"></div>

JavaScript使用
selectedIndex
this
节点中查找选项,然后使用
getAttribute()
查找
数据单元
属性中包含的字符串,并将其连接到
this.value
字符串。

<form>  
    <select id="sel">
        <option value="1" data-unit="kg">item_1</option>
        <option value="2" data-unit="kph">item_2</option>
        <option value="3" data-unit="m2">item_3</option>
    </select>
</form>

<div id="show"></div>


JavaScript使用
selectedIndex
this
节点中查找选项,然后使用
getAttribute()
查找
数据单元
属性中包含的字符串,并将其连接到
this.value
字符串。

FYI-这不是jqueryyi-这不是jQueryNo。如果仔细观察,他的
this.value
语句包含在闭包中。这将更改
对象的范围。否。如果仔细观察,他的
this.value
语句包含在闭包中。这将更改
对象的范围。这正在工作!但是有了这个.value,值仍然被提交!如果代码中没有this.value,则它工作正常。看看@diaho再次感谢!这是工作!但是有了这个.value,值仍然被提交!如果代码中没有this.value,则它工作正常。看看@diaho再次感谢!