2016-08-09 11 views
0

私はこのようないくつかの入力を持っている:入力配列をjquery経由で別の入力に渡すことはできますか?

<input name="name1[]" value="1"/> 
<input name="name1[]" value="2"/> 
<input name="name1[]" value="3"/> 

をし、私はこのような別の入力があります:私はNAME1の入力値がNAME2したい

<input name="name2" /> 

を。

私はこれを試してみてください。

$('input[name=name1]').val($('input[name=name2]').val()); 

答えて

0

だけ<input/>につき一つの値が存在する可能性があるためあなたがそれを行うことはできません。私はこれをテストしていませんが、あなたは何をしている場合:

基本的に
$('<input name="name1[]"/>').val($('input[name=name2]').val()).appendTo('form#foo'); 

、あなたが新しい値で新しい<input/>を作成し、提出する前に、フォームに追加することができます。

+0

なぜあなたは 'appendToを使用しています'メソッド? – undefined

+0

一度入力DOMオブジェクトを作成すると、ドキュメントのどこかに配置する必要があります。それ以外の場合はページ上のどこにもなりません。 –

+0

私はあなたが要素を生成していることに気付かなかった。しかし、なぜ?それは、DOM内のターゲット要素_exists_のようです! "と私はこのような別の入力を持っている..."。各入力に対応する要素を作成する必要があることを示唆していますか?ターゲット要素の値は、 'name1 []' groupのコンマ区切りの値にすることができます。 – undefined

0

私が正しく理解していれば、<input name="name2" />は常に他の入力に含まれている値で更新されます。

これはあなたが行うことができそうであるならば:あなたは反対のことを必要とする場合

$(function() { 
 
    $('input[name^=name1]').on('input', function(e) { 
 
    var txt = $('input[name^=name1]').map(function(index, element) { 
 
     return this.value; 
 
    }).get().join(', '); 
 
    $('input[name="name2"]').val(txt); 
 
    }).first().trigger('input'); 
 
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 

 
<form> 
 
    <input name="name1[]" value="1"/><br> 
 
    <input name="name1[]" value="2"/><br> 
 
    <input name="name1[]" value="3"/><br> 
 
    <input name="name2" /><br> 
 
</form>

$(function() { 
 
    $('input[name="name2"]').on('input', function(e) { 
 
    $('input[name^="name1"]').val(function(index, value) { 
 
     return value + e.target.value; 
 
    }); 
 
    }); 
 
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 

 
<form> 
 
    <input name="name1[]" value="1"/><br> 
 
    <input name="name1[]" value="2"/><br> 
 
    <input name="name1[]" value="3"/><br> 
 
    <input name="name2" /> 
 
</form>

0

.val()は、要素の出現とともに使用されると、常に第1の出現を考慮する。 要素の同じセットから複数の値を抽出するために、あなたはfunction

参考に.val()を使用する必要があります:http://api.jquery.com/val/#val-function

$('input[name=name2]').val(function(index,value) 
    { 
     $('input[name="name1[]"]').each(function() 
     { 
     value += $(this).val(); 
     }); 
     return value; 
    }); 

例:https://jsfiddle.net/pgyLvx43/

関連する問題