繁体   English   中英

javascript将值从选择多个值传递到选定的文本字段

[英]javascript pass value from select multiple to a selected textfield

我有多个文本字段和一个这样的选择多个

<input type="text" placeholder="1"><br>
<input type="text" placeholder="2"><br>
<input type="text" placeholder="3"><br>
<input type="text" placeholder="4"><br>

<select multiple="multiple">
  <option>One</option>
  <option>Two</option>
  <option>Three</option>
  <option>Four</option>
</select>

可以说我单击了文本字段1,然后单击了多个“一个”

并且值“ One”将传递到文本字段1,因为我之前单击了文本字段1。

如果我单击了文本字段2,则“一个”将传递给文本字段2

我希望您意识到您在问一个错误的问题,因为您没有提供任何尝试。 但是,我心情很好,碰巧发现这对我自己很有趣。

您的jQuery(没有普通的javascript)将是:

$(document).ready(function() {
  var lastinput = null;
  $("input").click(function() {
    lastinput = $(this);
  });
  $("option").click(function() {
    if (lastinput != null) {
      lastinput.val($(this).text());
    }
  });
});

如本JSFiddle演示所示

好的,尽管要求使用JS,但我可以在此处看到一些jQuery回答。
这是JS之一:

var activeInput = false;
window.onload = function(event) { 
  allInputs = document.getElementsByTagName('input');

  for (i = 0; i < allInputs.length; i++)
  {
    allInputs[i].addEventListener('focus', function(){activeInput = this;});
  }

  allOptions = document.getElementsByTagName('option');

  for (i = 0; i < allOptions.length; i++)
  {
    allOptions[i].addEventListener('click', function(){ if (activeInput){activeInput.value = this.text;}});
  }
}();

假设您使用的是jQuery? 如果不是这样,它会变得有点困难,但仍然很有可能。

// we have a variable to track which textbox we clicked on most recently
var focused = null;
$('input').focus(function(){
    focused = this;
});

// when an option is clicked, we set the recently clicked textbox's value
$('option').click(function(){
    if(focused){
        $(focused).val($(this).text());
    }
});

了解有关jQuery的FocusClick函数的更多信息。

暂无
暂无

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

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