如何将选项列表中超过1个单词的整个术语转换为连续的输入字段

时间:2017-02-15 17:19:50

标签: javascript html function

我有一个html表单来读取数据库中的数据。可以从选项列表中选择DB-request的值,并将其发送到输入字段。根据需要,可以创建其他输入字段。当所选值为单个单词时,这适用于以下函数:

enter code here

  <script>
  // Start of function for additional input fields  
     var counter = 1;

     var limit = 10;

     function addInput(divName){

          if (counter == limit)  {

               alert("You have reached the limit of adding " + counter + " 
  inputs");

          }

          else {

     // Create new div
     var newdiv = document.createElement('div');
     newdiv.innerHTML = '<br><input type="text" name="productinput[]" 
  class="awesomplete" list="productinputselect" size="20"/>';
     document.getElementById(divName).appendChild(newdiv);

     // Re instantiate Awesomplete
     new Awesomplete(newdiv.querySelector('input'), { list: 
  document.querySelector('#productinputselect') });

     // Set counter
     counter++;

          }

     }

  // End of function for additional input fields  


  // Start of function for sending selected values to input-field   

  function getSelectValues(select) {
    var result = [];
    var options = select && select.options;
    var opt;

    for (var i=0, iLen=options.length; i<iLen; i++) {
      opt = options[i];

      if (opt.selected) {
        result.push(opt.value || opt.text);
      }
    }
    return result;
   }

  function sendproductnameinput() {
    var index = 0;
          var inputs = document.formdatabaseDE.elements["productinput[]"];
      var selected = getSelectValues(document.formdatabase.productselect);

      // set the input values based on the selected options
      for (var i = 0; i < selected.length; i++) {
          if(index < inputs.length) {
              inputs[index].value = selected[i];
          index++;
          }
      }

          // empty the remaining inputs
          for (var i = selected.length; i < inputs.length; i++) {
                  inputs[i].value = '';
          }
  }

  // End of function for sending selected values to input-field   
   </script>

但是,如果option-list中的值由2个或更多单词组成(由单个空格分隔),则只有第一个单词被发送到输入字段而不是整个术语。

如果有人可以帮我修改这个函数,以便将值完全发送到输入字段,我会非常高兴,尽管它们包含多于1个字。

1 个答案:

答案 0 :(得分:0)

问题的解决方案是将单词用空格划分为1个术语的引号:

enter code here

    while ($row = mysqli_fetch_assoc($result)) { 
      echo '<option class="optproduct" value='. $row['Name'] . '>' . $row
      ['Name']. '</option>'; echo '<br>'; }

成为:

enter code here

    while ($row = mysqli_fetch_assoc($result)) { 
      echo '<option class="optproduct" value="'. $row['Name'] . '">' . $row
      ['Name']. '</option>'; echo '<br>'; }