2017-10-05 15 views
0

要するに、名前属性をIDと同じに設定するための自己参照コードがありますか? .serialize()使っ例えば 、長期で名前属性自己参照ID

<input name="this.id" id="input1"> 

は、name属性を使用する必要があります。仮に、name属性のない多くの入力を含むフォームがあります。私は

  • id属性を使用してフォームをシリアル化するために、各入力にid年代と一致name属性、
  • creating a separate functionを追加し、私は(「べき」、読んで)ことができるか、

    • の承知していますこのような同様の解決策はquestion,
    • となり、ステップはsubmit a formになります。

    しかし、SOにいくつかの研究では、私は人が使用した場合、

    <input name="id[]" id="input1"> 
    

    シリアル化された、nameidがそれに追加さなければならないことを信じるように導かれました。私のテストでは、このメソッドはid%5B%5D(id []のURLエンコードされた文字列)を生成します。使用可能なものを使用して、name属性を設定して各入力のid属性を参照する短い手続きはありますか?

  • +0

    を書くを参照するときにそれを設定します入力の名前を設定するフォームを作成するかコードを実行する – epascarello

    +0

    実際には、おそらく私がやること。好奇心がこのクエリを駆動します。 – bowl0stu

    +0

    これらの入力はすべて最初にどのように作成されますか?彼らが生成されたところから始まるように思えるでしょう – charlietfl

    答えて

    0

    参照を行うHTMLはありませんので、手動で設定する必要があります。最適なソリューションは、フォームを作成するときに設定します。それとも、要素

    console.log($("input").attr("name", function(){ return this.name || this.id }).serialize())
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <input id="foo1" value="1" /> 
     
    <input id="foo2" value="2" /> 
     
    <input id="foo3" value="3" /> 
     
    <input id="foo4" value="4" />

    またはちょうどあなたがいずれかのときに名前を設定していないだから、なぜあなた自身の方法

    $.fn.serializeId = function() { 
     
        return $(this).map(function(){ 
     
        return this.id + "=" + encodeURIComponent($(this).val()) 
     
        }).get().join("&"); 
     
    } 
     
    
     
    
     
    console.log($("input").serializeId())
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <input id="foo1" value="1" /> 
     
    <input id="foo2" value="2" /> 
     
    <input id="foo3" value="3" /> 
     
    <input id="foo4" value="4" />

    +0

    これはソリューションであり、場合によっては目的のエンドへの最短ルートです。しかし、私は私が尋ねたことをやるための他の方法についてははるかに興味があります。 – bowl0stu

    +0

    あなたがしたいことはできません。 2つの解決策は、あなたがそれを設定するか、あなた自身のシリアル化を書くことです。 – epascarello

    +0

    _yet_ – bowl0stu