html表格单元格以更好的方式显示在输入框中输入的文本

时间:2014-07-05 07:45:52

标签: javascript jquery html css

我有一个动态html表,用户填写某些细节。问题是,最后两个输入列的数据长度有时可能很大。有人可以建议我显示最后两个输入框的最佳方式,以便用户在填写细节后能够轻松查看他输入的内容。使用当前设置,他无法一目了然地查看整个输入框数据。

HTML

<table id="master_table" border="0">
     <tr>
     <th>COL1</th>
     <th>COL2</th>
     <th>COL3</th>
     <th>COL4</th>
     <td>&nbsp;</td>
     </tr>
     <tr>
     <td>
     <input type="text" name="col1" class="col1"/>
     </td>
         <td>
     <input type="text" name="col2" class="col2"/>
     </td>
         <td>
     <input type="text" name="col3" class="col3"/>
     </td>
         <td>
     <input type="text" name="col4" class="col4"/>
     </td>
         <td>
     <input type="button" name="addRow" class="add" value='Add'/>
     </td>
         <td>
     <input type="button" name="removeRow" class="removeRow" value='Delete'/>
     </td>
     </tr>
     <tr>
     <td colspan="4" align="center">
     <input type="button" name="submit_data" class="submit" value="Submit" onclick="myFunction()"/>
     </td>
     </tr>
     </table>

小提琴演示:

FIDDLE PAGE

更新 感谢@ dr Manish Joshi

我能够达到预期的结果HERE

但它在jsfiddle中运行正常,但是当我尝试在浏览器中运行时它会引发javascript错误。

  

未捕获的typeerror无法读取null的属性'addeventlistener'

2 个答案:

答案 0 :(得分:1)

使用table-layout属性。 table-layout:fixed会调整单元格以占据表格的相等空间。

写:

#master_table{
    width:100%;
    table-layout:fixed;
}

此处更新了fiddle

答案 1 :(得分:1)

你可以尝试

   <td>
 <input type="text" name="col1" class="col1" length="20"/>
 </td>
     <td>
 <input type="text" name="col2" class="col2" length="20"/>
 </td>
     <td>
 <input type="text" name="col3" class="col3" onkeypress="this.style.width = ((this.value.length + 1) * 8) + 'px';"/>
 </td>
     <td>
 <input type="text" name="col4" class="col4"  onkeypress="this.style.width = ((this.value.length + 1) * 8) + 'px';"/>
 </td>
     <td>

jsfiddle - http://jsfiddle.net/Vu8HC/6/

编辑:

根据codepen.io/vsync/pen/czgrf,您的代码看起来像textarea,如下所示

<html>
<head>
<style>
body{ background:#c0c0c0; color:#8c001a; }
/*( 'box-sizing' will not work with this code )*/
textarea{  
  /* box-sizing: padding-box; */
  overflow:hidden;
  /* demo only: */
  padding:10px;
  width:250px;
  font-size:14px;
  margin:50px auto;
  display:block;
  border-radius:10px;
  border:1px solid #8c001a;
}
</style>
</head>

<body>


<textarea rows='1' placeholder='Auto-Expanding Textarea'></textarea>

<script>
var textarea = document.querySelector('textarea');

textarea.addEventListener('keydown', autosize);

function autosize(){
var el = this;
  setTimeout(function(){
    el.style.cssText = 'height:auto; padding:0';
    // for box-sizing other than "content-box" use:
    // el.style.cssText = '-moz-box-sizing:content-box';
    el.style.cssText = 'height:' + el.scrollHeight + 'px';
  },0);
}
</script>

</body>
</html>

您可以在此链接的浏览器中查看工作示例:http://ayurvedvishva.com/e_nima/jstest