将值设置为具有相同名称的{tex}

时间:2017-06-27 10:17:42

标签: javascript php jquery textbox

我有一些textboxe

   <td><input type="text" class="textbox" name="txtname[]" id="txtname[]" /></td>
<td><input type="text" class="textbox" name="txtfname[]" id= "txtfname[]" /></td>
<td><input type="text" class="textbox" name="txtmname[]" id="txtmname[]" /></td>

所以我可以有一个像表单一样的表来输入这些textboxes的行数。我需要为这个texboxes.i设置值我需要设置的行号..但我怎样才能得到一行这些文本框中使用id ??

设置值

enter image description here

这是我的表格。行数是动态的,我就像那样命名它们。我需要为带圆圈的文本框设置一个值。我该怎么做?

3 个答案:

答案 0 :(得分: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>"
}

答案 1 :(得分:0)

根据规则,&#34; Id&#34;在当前页面中应该是唯一的, 所以你必须使用&#34; class&#34;在多于一个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]; 恩。 row [0] [2] .value为您提供MiddleName输入字段值

我希望你能得到这个简短的解释

答案 2 :(得分:0)

正如许多人所说,html中的 id属性必须是唯一的,因此在这里使用数组名称是不合适的,请参阅此处https://www.w3.org/TR/REC-html40/types.html#type-name

由于这是动态生成的表列,我建议在表上使用命名约定,然后使用它来查找所需的当前输入。我不知道你如何访问这些信息,但我的下面的例子是这样做的

获取我们正在使用的表格。

在你有'$(''#textbox [0]“)的评论中获取你想要的索引行(不知道你如何确定这一行).val();'这个指数将是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>