在html表的下一个td中显示所选选项

时间:2018-04-27 09:30:13

标签: javascript html



function a()
 {
 var e2 = document.getElementById("fid");
 var strUser2 = e2.options[e2.selectedIndex].text;
 document.getElementById("fid2").value=strUser2;

 }

<table>
  <tr>
  <th>A</th>
  <th>B</th>
  <th>C</th>
  </tr>
  <tr>
  <td><input type="text" name="id1" form="form2" id="id1" class="form-control input-sm" ></td>
      <td><select class="form-control" id="fid" name="fid" form="form2" required>
        <option value="" selected>Select</option>
        <c:forEach var="b"  items="${model.list2}">
        <option value="${b.id}">${b.name}</option>
        </c:forEach>
        	</select></td>
        	
        	 <td ><input class="form-control" id="fid2" name="fid2" required></td>
  </tr>
  
  </table>
&#13;
&#13;
&#13;

表行是动态的。行将根据搜索进行填充。只有第二列和第三列是可编辑的。第3列应包含在第2列中选择的值。此代码仅适用于第1行。但它应该适用于所有行。如何实现它。

3 个答案:

答案 0 :(得分:0)

您可以这样做,因为单个网页上没有两个元素可以具有相同的ID。您也可以使用类选择器来完成此操作。

function a()
 {
 var e1 = document.getElementById("id1");
 var strUser2 = e1.options[e1.selectedIndex].text;
 document.getElementById("id2").value=strUser2;

 }
 function b()
 {
 var e2 = document.getElementById("id3");
 var strUser2 = e2.options[e2.selectedIndex].text;
 document.getElementById("id4").value=strUser2;
 }
<table>
  <tr>
  <th>A</th>
  <th>B</th>
  </tr>
  <tr>
  <td><select class="form-control select" id="id1" name="id1" onchange="a()" required>
       <option selected>Select</option>
        <option>A</option>
        <option>B</option>
        <option>C</option>
        <option>D</option>
        <option>E</option>
        <option>F</option>
        </select></td>
  <td><input type="text" name="id2" id="id2" class="texts"></td>
  </tr>
  <tr>
  <td><select class="form-control" id="id3" name="id3" onchange="b()" required>
       <option selected>Select</option>
        <option>A</option>
        <option>B</option>
        <option>C</option>
        <option>D</option>
        <option>E</option>
        <option>F</option>
        </select></td>
  <td><input type="text" name="id4" id="id4"></td>
  </tr>
  
  </table>

答案 1 :(得分:0)

尝试将select传递给您的函数,以防止一个DOM查询,并将select与输入匹配,并将属性名称设置为id。

这种方式更清洁,更快速,可重复使用。

Fiddle here

<table>
  <tr>
    <th>A</th>
    <th>B</th>
  </tr>
  <tr>
    <td><select class="form-control" name="id1" onchange="a( this )" required>
      <option selected>Select</option>
      <option>A</option>
      <option>B</option>
      <option>C</option>
      <option>D</option>
      <option>E</option>
      <option>F</option>
      </select></td>
    <td><input type="text" id="id1"></td>
  </tr>
  <tr>
    <td><select class="form-control" name="id2" onchange="a( this )" required>
      <option selected>Select</option>
      <option>A</option>
      <option>B</option>
      <option>C</option>
      <option>D</option>
      <option>E</option>
      <option>F</option>
      </select></td>
    <td><input type="text" id="id2"></td>
  </tr>
</table>


<script>
  function a( select ) {
    var target = document.getElementById( select.name );
    target.value = select.value;
  }
</script>

答案 2 :(得分:0)

不要依赖Ids,我会这样解决 函数a现在需要2个参数,首先是当前的select元素, 第二个是要更新的输入的ID(它应该是不同的而不是重复的)

z2