如何在一次粘贴中将多个值粘贴到多个表单输入中?

时间:2017-12-26 17:22:00

标签: php jquery html forms

说我复制

1 2 3 4

然后选择一个输入字段,当我粘贴它时,它自动将1放入第一个字段,2放入第二个字段,3放入第三个等等。

复制的值将以空格,逗号或制表符分隔。

表单是简单的html,我使用PHP插入数据库,无论语言解决方案是否正常。我会想象它的jquery,甚至将我引导到相关的jQuery插件,如果存在的话。

2 个答案:

答案 0 :(得分:1)

我已经逐行评论了代码,希望这已经足够了。我必须去上班,一旦到达那里我就会做出任何澄清的修改。



$(function(){
  //run this on dom ready
  $('.paste-me').on('paste', function(e){
    //add the paste event to all of the paste-me classes
    var data1 = e.originalEvent.clipboardData.items[0];
    //get the data transfer item of hte original clipboard data event.
    if(data1.kind == 'string' && data1.type=='text/plain'){
    //If it is a string and text/plain, move forward
      e.stopPropagation();
      //Stop the propagtion of this event
      data1.getAsString(function(s){
      //get the string contents of the clipboard item.
        s = s.split('\t');
        //split it by spaces
        $('.paste-me').each(function(i,item){
          //loop through each .paste-me item
          $(item).val( s[i] || '');
          //set the value from the split array, or an empty string if someone copy/pastes something too small to put a value in each item
        });
      });
    }
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="paste-me" name="paste_me[]" type="text"/>
<input class="paste-me" name="paste_me[]" type="text"/>
<input class="paste-me" name="paste_me[]" type="text"/>
<input class="paste-me" name="paste_me[]" type="text"/>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

使用tokenizer来完成此操作,然后在您需要的元素中设置值(存储在数组中的commonoly)。