繁体   English   中英

如何显示当前值 <select>标签上无变化功能

[英]How to display current value of <select> in label without change function

我当前有一个标签,显示从动态选择下拉列表中选择的选项,但仅显示onchange。 我希望它也能够在页面加载时显示当前值。 我没有运气就尝试将'change'切换为'load'。 这是我当前的设置:

 Array.prototype.forEach.call(document.getElementsByName('filename'), function(elem) { elem.addEventListener('change', function() { document.getElementById('mylabel').innerHTML = this.value; }); }); 
 <select class="select1" name="filename" id="filename"> <option>foo</option> <option>bar</option> </select> <label id="mylabel"></label> 

您确实说过页面加载时就这么简单...

<body onload="mylabel.innerHTML=filename.value;">

我希望这是您想要的,我只是在函数外部添加了一行

 Array.prototype.forEach.call(document.getElementsByName('filename'), function(elem) { elem.addEventListener('change', function() { document.getElementById('mylabel').innerHTML = this.value; }); }); document.getElementById('mylabel').innerHTML = document.getElementById('filename').value; 
 <select class="select1" name="filename" id="filename"> <option>foo</option> <option>bar</option> </select> <label id="mylabel"></label> 

 Array.prototype.forEach.call(document.getElementsByName('filename'), function(elem) { elem.addEventListener('change', function() { document.getElementById('mylabel').innerHTML = this.value; }); }); $('#mylabel').html($('#filename').val()); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <select class="select1" name="filename" id="filename"> <option>foo</option> <option>bar</option> </select> <label id="mylabel"></label> 

为什么循环?

 let e = document.getElementById("filename"); let x = document.getElementById('mylabel'); document.addEventListener('DOMContentLoaded',function(){ x.innerHTML = e.value; e.addEventListener('change', function(){ x.innerHTML = this.value; }); }); 
 <select class="select1" name="filename" id="filename"> <option>foo</option> <option>bar</option> </select> <label id="mylabel"></label> 

应用DRY(请勿重复):命名单击处理程序,然后在初始化期间手动调用它。 或者,您甚至可以在初始化期间手动触发更改。

$(function() {
  // event handler on change
  $('#filename').change(mylabel_update);

  // update mylabel to show filename
  function mylabel_update() {
    $('#mylabel').html($('#filename').value);
  } 

  // initialize option A - call the function directly
  mylabel_update();

  // initialize option B - force the change event (don't need the named fn)
  $('#filename').trigger('change');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM