【问题标题】:Javascript - Populate 2 textbox with 1 select listJavascript - 用 1 个选择列表填充 2 个文本框
【发布时间】:2013-01-31 00:35:55
【问题描述】:

当在下拉框中选择某些内容时,我需要填充 2 个不同的文本框。

来自fiddle,我一个人就可以做到。

对不起,让我再澄清一点。这个下拉列表实际上是这个人的 LONG NAME。当他的名字被选中时,我正在尝试填充“昵称”和“联系电话”文本框。

看看这个demo,我现在有两个文本框。在我的数据库中,我记录了每个人的全名、昵称和联系电话。如何创建选择列表由我决定,但我只想选择他的全名,以便在 2 个单独的框中显示昵称和联系电话。

【问题讨论】:

  • ??为什么不直接向该事件处理程序添加代码来更新另一个输入字段?有什么问题?
  • 你这是什么意思?
  • 我的意思是你已经有代码可以更新文本区域了。仅在另一个输入字段上使用该方法不起作用的原因是什么?
  • 因为 textfield value = selected value 我不知道在哪里填充另一个值。数组是否允许?

标签: javascript


【解决方案1】:

抱歉,您的示例只有一个 texarea...

但是,如果我没有误解您的问题,您可以这样做:

var mytextbox = document.getElementById('mytext');
var mytextbox2 = document.getElementById('mytext2');

var mydropdown = document.getElementById('dropdown');

mydropdown.onchange = function(){

   mytextbox.value = mytextbox.value  + this.value;
   mytextbox2.value = mytextbox2.value  + this.value;
}

【讨论】:

    【解决方案2】:
    <textarea id="mytext"></textarea>
    <textarea id="mytext2"></textarea>
    <select id="dropdown">
    <option value="">None</option>
    <option value="contactnumber1">text1</option>
    <option value="contactnumber2">text2</option>
    <option value="contactnumber3">text3</option>
    <option value="contactnumber4">text4</option>
    </select>
    
    var mytextbox = document.getElementById('mytext');
    var mytextbox2 = document.getElementById('mytext2');
    var mydropdown = document.getElementById('dropdown');
    
    mydropdown.onchange = function () {
    mytextbox.value = mydropdown.options[this.selectedIndex].text;
    mytextbox2.value = mydropdown.options[this.selectedIndex].value;
    };
    

    【讨论】:

      【解决方案3】:

      您的意思是,您想在每次某些主体从下拉列表中选择项目时追加选择吗? 我在你的小提琴中没有看到两个文本框,这就是我问的原因......

      如果您想选择唯一值,那么..

      var mytextbox = document.getElementById('mytext');
      var mydropdown = document.getElementById('dropdown');
      var strValue =  new String();
      mydropdown.onchange = function(){
      if(strValue.indexOf(this.value)<=0){
         if(strValue!="")
      {
          strValue += "," + this.value;
      }
      else
      {
          strValue = this.value
      }
      }
      mytextbox.value = strValue;
      }
      

      【讨论】:

      • 对不起,让我再澄清一点。这个下拉列表实际上是这个人的 LONG NAME。当他的名字被选中时,我正在尝试填充“昵称”和“联系电话”文本框。
      • 联系电话从哪里来(每个长名)?
      【解决方案4】:

      因此,您希望一个标签填充两个值。话虽如此,如果您只是将数据属性放在选项标签中呢? data-contactNumber data-longName

      <select>  
      <option value="x" data-contactNumber = "yyyy" data-longName="zzzz">  
      .....
      </select>  
      

      然后您可以只将选定的选项文本框分配给各个数据属性??

      【讨论】:

      • 我真的可以做到吗?!我要试试!
      • 等等,我如何从中获取数据?
      • 我在这里找到了我的答案! stackoverflow.com/questions/4564659/…
      • Data ATTRS 是一个很棒的东西,应该做你想做的事。很高兴您也找到了其他链接!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-20
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      相关资源
      最近更新 更多