如何在文本框中获取价值

时间:2012-11-06 16:56:03

标签: javascript jquery

我已经在html和JavaScript中完成了一些代码......我的查询就是当我点击<td>时,无论与之相关的值是什么,都必须显示在相应的文本框中... 在<td>前面我已经采用了文本框...例如,我已经采用了3个<td>和3个文本框

       <script type="text/javascript">
       function click3(x) {
       x = document.getElementById("name").innerHTML
       var a = document.getElementById("txt"); 
       a.value = x; 
       }
       function click1(y) {
       y = document.getElementById("addr").innerHTML
       var b = document.getElementById("txt1");
       b.value = y;
       }
       function click2(z) {
       z = document.getElementById("email").innerHTML
       var c = document.getElementById("txt2");
       c.value = z;
         }
       </script>

这是我的JavaScript代码,我知道这不是解决此类问题的适当方法,因为它给出了静态方法来处理这个问题 有没有人有更好的解决方案来解决这个问题? 在JavaScript / jQuery中

3 个答案:

答案 0 :(得分:1)

如果click1,click2并且click3应该是三个事件,那么你必须保留所有三个功能,你可以缩短脚本代码以便为文本字段赋值。

<script type="text/javascript">
   function click3(x) {
      document.getElementById("txt").value = document.getElementById("name").innerHTML;
   }
   function click1(y) {
     document.getElementById("txt1").value = document.getElementById("addr").innerHTML;
   }
   function click2(z) {
     document.getElementById("txt2").value = document.getElementById("email").innerHTML; 
   }
   </script>

如果您有单击事件并缩短分配代码,则可以创建单个函数,

function SomeClick(x) {
   document.getElementById("txt").value = document.getElementById("name").innerHTML;
   document.getElementById("txt1").value = document.getElementById("addr").innerHTML;
   document.getElementById("txt2").value = document.getElementById("email").innerHTML;    
 }

答案 1 :(得分:1)

据我了解您的问题,您可以尝试以下方式,假设您的HTML结构如何:

HTML标记

<table id="mytable">
  <tr>
    <th>Name</th>
    <th>Address</th>
     <th>Email</th>
  </tr>
  <tr>
    <td class="name">Tom</td>
    <td class="addr">789</td>
    <td class="email">tom@dot.com</td>
  </tr>
  <tr>
    <td class="name">Dick</td>
    <td class="addr">456</td>
    <td class="email">dick@dot.com</td>
  </tr>
  <tr>
    <td class="name">Harry</td>
    <td class="addr">123</td>
    <td class="email">harry@dot.com</td>
  </tr>
</table>

<input id="txt1" type="text" />
<input id="txt2" type="text" />
<input id="txt3" type="text" />​

<强>的jQuery

$(".name").click(function(){
   $("#txt1").val($(this).text());
   $("#txt2").val($(this).nextAll().eq(0).text());
   $("#txt3").val($(this).nextAll().eq(1).text());
});​

$(".addr").click(function(){
   $("#txt2").val($(this).text());
   $("#txt1").val($(this).prevAll().eq(0).text());
   $("#txt3").val($(this).nextAll().eq(0).text());
});

$(".email").click(function(){
   $("#txt3").val($(this).text());
   $("#txt2").val($(this).prevAll().eq(0).text());
   $("#txt1").val($(this).prevAll().eq(1).text());
});

DEMO http://jsfiddle.net/Z9weS/

答案 2 :(得分:0)

您可以组合列和行。每个单元格包含id,你可以给它列标题和

系列数可以是行和列的行组合的索引给出

按照特定事件的表格单元格地址,您可以读取id的值

然后你知道要拉出单元格值。

 $('tr')
        .click(function() {
        ROW = $(this)
            .attr('id');
        $('#display_Colume_Raw')
            .html(COLUME + ROW);

        $('#input' + COLUME + ROW)
            .show();
        STATUS = $("#input" + COLUME + ROW)
            .val();
    });