Таблицы должны быть злыми, но, похоже, они решают проблему.
Я все еще заинтересован в решении без javascript или таблиц, если кто-нибудь может найти его ...
Распределите оставшееся пространство в соотношении 70: 30
<table width="100%">
<tr>
<td style="width:70%">
<input style="width:100%"/>
</td>
<td>
<a>Some Text</a>
</td>
<td style="width:30%">
<input style="width:100%"/>
</td>
</tr>
</table>
Первое поле ввода занимает все оставшееся пространство, в то время как последнее поле имеет фиксированную ширину:
<table width="100%">
<tr>
<td style="width:100%">
<input style="width:100%"/>
</td>
<td>
<a>Some Text</a>
</td>
<td style="width:100px">
<input style="width:100px"/>
</td>
</tr>
</table>