我有一个动态html表,用户填写某些细节。问题是,最后两个输入列的数据长度有时可能很大。有人可以建议我显示最后两个输入框的最佳方式,以便用户在填写细节后能够轻松查看他输入的内容。使用当前设置,他无法一目了然地查看整个输入框数据。
HTML :
<table id="master_table" border="0">
<tr>
<th>COL1</th>
<th>COL2</th>
<th>COL3</th>
<th>COL4</th>
<td> </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>
小提琴演示:
更新 感谢@ dr Manish Joshi
我能够达到预期的结果HERE。
但它在jsfiddle中运行正常,但是当我尝试在浏览器中运行时它会引发javascript错误。
未捕获的typeerror无法读取null的属性'addeventlistener'
答案 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