0

<select>当我使用更改标签的选定值时,如何触发事件JavaScript

我尝试过这样的事情,但我现在迷路了;当我更改标签的选定值时,我想更改标签的值<select>

function ChangeSelectValue(ddlID, value, change) {
     var ddl = document.getElementById(ddlID); 
}
4

2 回答 2

2

这很简单,只需使用 onchange=display(this.value) 从选择选项返回所选值,其中 dispaly() 是用户定义的函数,this.value 返回所选值

        <!DOCTYPE html>
        <html>
        <head>
        <script>
            function display(str) {
                alert(str);
            }
        </script>
        </head>
        <body>

        <h1>My First JavaScript</h1>
        <p id="demo">This is a paragraph.</p>

         <select id="Country" onchange="display(this.value)">
         <option id="I" value="India">India</option>
          <option id="P" value="Pakistan" >Pakistan</option>
          <option id="S" value="SriLanka">SriLanka</option>
            <option id="C" value="China" >China</option>
          </select>

        </body>
        </html> 
于 2013-08-11T18:53:09.183 回答
0

在最简单的情况下,这需要很少的 JavaScript:

var selectEl = document.getElementById('fruits');
function labelChange () {
    var label = document.querySelector('label[for="' + this.id + '"]');
    label.textContent = 'You chose: ' + this.value;
}

selectEl.addEventListener('change', labelChange);

JS 小提琴演示

尽管上面的代码是为实现addEventListener()document.querySelector()方法的当代/现代浏览器而设计的。

为了获得更多的向后兼容性,以下内容也可以使用,尽管它比我想要的有点“笨拙”:

var selectEl = document.getElementById('fruits');
function labelChange () {
    var labels = document.getElementsByTagName('label'),
        text = 'textContent' in document ? 'textContent' : 'innerText',
        label;
    for (var i = 0, len = labels.length; i<len; i++) {
        if (labels[i].htmlFor == this.id) {
            label = labels[i];
        }
    }
    label[text] = 'You chose: ' + this.value;
}

selectEl.onchange = labelChange;

JS 小提琴演示

于 2013-08-11T19:03:23.203 回答