【问题标题】:jQuery send multiple value in another inputjQuery在另一个输入中发送多个值
【发布时间】:2016-07-13 07:45:45
【问题描述】:

我创建了一个循环来显示商店的身份证。

卡片的内容包含有关商店的信息(电话、地址...)。卡片上有一个选择商店的按钮,我想将多个值发送到另一个input

<li>

<span onclick="doSomething()" value="3">Select this Shop</span>
<input class="info-1" type="hidden" value="footlocker">
<input class="info-2" type="hidden" value="13 street 1000">
<input class="info-3" type="hidden" value="new york city">
<input class="info-4" type="hidden" value="00 22 55 66 33">
<input class="info-5" type="hidden" value="ID shop 6">

</li>


<li>
<span onclick="doSomething()" value="5">Select this Shop</span><br/>
<input class="info-1" type="hidden" value="Mc Donald">
<input class="info-2" type="hidden" value="256 avenue clint">
<input class="info-3" type="hidden" value="San Diego">
<input class="info-4" type="hidden" value="31 64 21 54 12">
<input class="info-5" type="hidden" value="ID shop 34">
</li>
...

信息在此处的输入中发送

<input id="info-1" value="">
<input id="info-2" value="">
<input id="info-3" value="">
<input id="info-4" value="">
<input id="info-5" value="">

我的 jQuery

function doSomething(){


    var text= $('.info-1').attr('value');
    $( "#info-1" ).val(text);

    var text =  $('.info-2').attr('value');
    $( "#info-1" ).val(text);

    var text =  $('.info-3').attr('value');
    $( "#info-1" ).val(text);

    var text =  $('.info-4').attr('value');
    $( "#info-1" ).val(text);

    var text =  $('.info-5').attr('value');
    $( "#info-1" ).val(text);
}

此代码不起作用,如果起作用,它只会发送第一家商店的价值:(。

感谢您的帮助

https://jsfiddle.net/zjo1y4vv/3/

【问题讨论】:

  • 你到底想要什么?尝试更好地解释您的问题。谢谢

标签: jquery input send


【解决方案1】:

一些提示和修复:

  1. $('.info-1') 将选择多个元素。尝试在正确的上下文中获取唯一的一个元素,例如$(this).next('.info-1')$(this).parent().find('.info-1')

  2. doSomething() 函数中,您只能设置#info-1 的值,而不是#info-2 的值等等。

  3. 要获取输入的值,请使用 .val() 而不是 .attr('value')

【讨论】:

    【解决方案2】:

    JSFIDDLE DEMO

    HTML 应该是这样的

    <li>
      <span onclick="doSomething(this)" value="3">Select this Shop</span>
      <input class="info-1" type="hidden" value="footlocker">
      <input class="info-2" type="hidden" value="13 street 1000">
      <input class="info-3" type="hidden" value="new york city">
      <input class="info-4" type="hidden" value="00 22 55 66 33">
      <input class="info-5" type="hidden" value="ID shop 6">
    </li>
    <li>
      <span onclick="doSomething(this)" value="5">Select this Shop</span>
      <br/>
      <input class="info-1" type="hidden" value="Mc Donald">
      <input class="info-2" type="hidden" value="256 avenue clint">
      <input class="info-3" type="hidden" value="San Diego">
      <input class="info-4" type="hidden" value="31 64 21 54 12">
      <input class="info-5" type="hidden" value="ID shop 34">
    </li>
    <br/> 
    My container where is send the value :
    <input id="info-1" value="">
    <input id="info-2" value="">
    <input id="info-3" value="">
    <input id="info-4" value="">
    <input id="info-5" value="">
    

    JAVASCRIPT

      function doSomething(el) {
        var infomag = $(el).siblings('.info-1').val();
        $("#info-1").val(infomag);
    
        var text2 = $(el).siblings('.info-2').val();
        $("#info-2").val(text2);
    
        var text3 = $(el).siblings('.info-3').val();
        $("#info-3").val(text3);
    
        var text4 = $(el).siblings('.info-4').val();
        $("#info-4").val(text4);
    
        var text5 = $(el).siblings('.info-5').val();
        $("#info-5").val(text5);
      }
    

    你的小提琴有很多问题。

    1. doSomething(this) - 在您的 html 中添加参数 this
    2. 您有两次 id info-4
    3. 使用.siblings查找文字

    【讨论】:

    • 非常感谢!我试试这个,我来说是否可以:)
    • @MickaelFlaszenski - 很高兴为您提供帮助
    【解决方案3】:

    您可以尝试这样的事情:(如果您添加其他信息,您可以分解代码)

    $(".span").click(function(e){
    
        var infomag = $(this).siblings('.info-1').attr('value');
        $("#info-1").val(infomag);
        
        var text =  $(this).siblings('.info-2').attr('value');
        $("#info-2").val(text);
        
        text =  $(this).siblings('.info-3').attr('value');
        $("#info-3").val(text);
        
        text =  $(this).siblings('.info-4').attr('value');
        $("#info-4").val(text);
        
        text =  $(this).siblings('.info-5').attr('value');
        $("#info-5").val(text);
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <li>
    
    <span class="span" value="3">Select this Shop</span>
    <input class="info-1" type="hidden" value="footlocker">
    <input class="info-2" type="hidden" value="13 street 1000">
    <input class="info-3" type="hidden" value="new york city">
    <input class="info-4" type="hidden" value="00 22 55 66 33">
    <input class="info-5" type="hidden" value="ID shop 6">
    
    </li>
    
    
    <li>
    <span class="span"  value="5">Select this Shop</span><br/>
    <input class="info-1" type="hidden" value="Mc Donald">
    <input class="info-2" type="hidden" value="256 avenue clint">
    <input class="info-3" type="hidden" value="San Diego">
    <input class="info-4" type="hidden" value="31 64 21 54 12">
    <input class="info-5" type="hidden" value="ID shop 34">
    
    <br/>
    My container where is send the value :<br/>
    
    <input id="info-1" value=""><br/>
    <input id="info-2" value=""><br/>
    <input id="info-3" value=""><br/>
    <input id="info-4" value=""><br/>
    <input id="info-5" value=""><br/>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      相关资源
      最近更新 更多