Да length
для счетчика символов, а не ширины.
Вы хотите, чтобы текстовое поле заполнило все доступное пространство за исключением того, что занимает кнопка?Это выполнимо с таблицей (но я постоянно получаю удовольствие от переполнения стека за предложение таблиц).Допустим, ради аргумента вы используете DIV с display: table, но просто для простоты я проиллюстрирую фактическую разметку таблицы.
<table cellpadding=0 cellspacing=0 width=100%>
<tr>
<td><input type="text" style="width:100%"></td>
<td style="width:0"><input type="submit"></td>
</tr>
</table>
Ширина 0 в ячейке кнопки может показаться странной, но таблицаклетки принимают свою ширину только как предложения.Он будет растягиваться, чтобы соответствовать содержанию, независимо от того, насколько вы его стройные.