2017-06-27 8 views
0

ので、私は、これらのtextboxes.iの行数で値を入力するフォームのようなテーブルを持つことができ、このための値を設定する必要がありますtexboxes.iには行番号が設定されていますが、idを使って値を設定するには、これらのテキストボックスの行をどのように取得できますか?設定値

enter image description here

これが私のフォームです。行の数はダイナミックなので、そのように名前を付けます。円で囲んだテキストボックスの値を設定する必要があります。どのように行うのですか?

+0

あなたの質問は非常に明確ではない、すべての関連するコードが含まれ、あなたがしようとしているものを私たちに示してください。 –

+0

配列のインデックスとして行番号を設定する必要があると思いますか? – JYoThI

+1

配列を指定しないでくださいidの要素に... id属性はHTML要素の一意のIDを指定します(値はHTML文書内で一意でなければなりません)。各html要素に一意のIDを付ける必要があります。 – Mahesh

答えて

0

あなたの質問は確かにはっきりしていませんが、私はあなたが動的IDを持つコンポーネントを管理できるようにしたいと考えています。

あなたのIDに変数を使用するだけで問題はありませんが(最後に文字列でなければなりません)、IDは一意でなければならないことに注意してください。

あなたalgorythmは次のようになります。

for(i=0;i<txtname.length;i++) { 
form+="<td><input type='text' class='textbox' name='txtname' id='txtname"+i+"' /></td>" 
} 
+0

idを使ってテキストボックスの値を設定したいと言っていることはちょっと明白です。 –

+0

これはあなたのテキストボックスのid = 'txtname "+ i +"'です。あなたはjqueryを使って値を設定しますか?あなたはすでに私の価値を知っていると思っています。 – Nola3191

+0

その質問に答えるには、あなたのコードの周りでより多くの文脈を持つ必要があります。 –

0

ルールを1として、「ID」は、現在のページ全体で一意である必要があり、 だから、あなたはもっとして1つのDOM要素の場合には「クラス」を使用する必要があります。 はあなたが行うことができ、このように:

var row =$(".textbox") 
row[0].value="FirstName" 
row[1].value="MiddleName"; 
row[2].value="lastName" 

あなたが4行と動的な(多)カラムがある場合:値の使用にアクセスするため

var row = new Array(4); 
for(loop to row length){ 
row[loop] = $(".textbox"+loop);//textbox0,textbox1,textbox2... 
} 

行[column_index] [ROW_INDEX]。 ex。行は、[0] [2]私はあなたがこの短い説明を取得願っていますが、入力フィールドの値

をMiddleName与える.VALUE

+0

これは1行右です。 – Nola3191

+0

このような行がある場合、多次元要素配列を使用することができます。 –

0

HTMLでのごid属性は、のように使用ユニークである必要があります言ったように、多くの配列名が正しくない場合はこちらhttps://www.w3.org/TR/REC-html40/types.html#type-nameをご覧ください。

これはテーブルの列が動的に生成されるため、テーブルの命名規則を推奨し、それを使用して必要な現在の入力を検索します。この情報にどのようにアクセスするのか分かりませんが、下の例ではこれを行います

私たちが使用しているテーブルを取得してください。

「$( "'#textbox [0]」)のコメントで、必要なインデックスの行を取得します(これをどのように決定するかわかりません)。このインデックスは、その行には0 ...

は、名前の入力を見つけて、その値を得るだろう。

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="UTF-8"> 
    <title>title</title> 
    </head> 
    <body> 
    <table id="datesheet"> 
     <tr> 
      <td><input type="text" class="textbox" name="txtname[]" value="test0"/></td> 
      <td><input type="text" class="textbox" name="txtfname[]"/></td> 
      <td><input type="text" class="textbox" name="txtmname[]"/></td> 
     </tr> 
     <tr> 
      <td><input type="text" class="textbox" name="txtname[]" value="test1"/></td> 
      <td><input type="text" class="textbox" name="txtfname[]"/></td> 
      <td><input type="text" class="textbox" name="txtmname[]"/></td> 
     </tr> 
     <tr> 
      <td><input type="text" class="textbox" name="txtname[]" value="test2"/></td> 
      <td><input type="text" class="textbox" name="txtfname[]"/></td> 
      <td><input type="text" class="textbox" name="txtmname[]"/></td> 
     </tr> 
    </table> 
    </body> 
</html> 
<script 
    src="https://code.jquery.com/jquery-3.2.1.min.js" 
    integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" 
    crossorigin="anonymous"></script> 
<script> 
    //Use an id on the table and get its rows 
    let rows = $("#datesheet tr"); 

    //Now find the row you want 
    let row_id = 1; // Not sure how you get this value. 
    let current_row = rows[row_id]; 

    //Get the input you wants value 
    let input_data = $(current_row).find("td input[name='txtname[]']").val() 

    //Not sure what should be the same now. 
    //If it is the other tds in this row then use selector above and set with val. 
    //If is is other rows input with the same name... That would be a bit involved and I would need some time. 

    //This is what other mean by unclear. 


    alert(input_data); 

</script>