У меня есть форма в ColdFusion, которая изначально имеет 5 полей ввода для загрузки файла. Если пользователь понимает, что у него есть более 5 файлов для загрузки в процессе их присоединения, я хотел бы, чтобы форма сохраняла значения, когда она подает себя для изменения количества полей.
Предполагается, что с помощью тега <cfform>
с атрибутом preservedata = "yes" это можно сделать, но все, что я получаю, - это временное значение, сохраненное в значении ввода при повторной передаче, которое не отображается в поле и не работает для представления.
edit: Спасибо за отличные ответы всем, вы все помогли и были правы. Я смог реализовать предложенное Адамом решение. Работает отлично! Спасибо!
function changeFieldCount() // javascript function for submit on input count change
{
var count = document.forms[0].numtotal.options[document.forms[0].numtotal.selectedIndex].value;
document.forms[0].action = "me.cfm?count=" + count;
document.forms[0].submit();
}
<cfparam name="url.count" default="5">
<cfform name="dispfiles" method="post" enctype="multipart/form-data" preservedata="yes">
<!--- looping for file input fields --->
<cfloop index="counter" from="1" to="#url.count#">
<cfinput type="file" name="file#counter#" size="50" maxlength="60"><br>
</cfloop>
<br>Number of Files to Attach:
<!--- looping for # of input selection--->
<cfselect name="numtotal">
<cfloop index="cnt" from="1" to="20" step="1">
<cfoutput>
<option value="#cnt#" <cfif #cnt# eq #url.count#>selected</cfif>>
#cnt#
</option>
</cfoutput>
</cfloop>
</cfselect>
<cfinput type="button" name="op-display" value="Display" onclick="changeFieldCount()">
<cfinput type="button" name="op-upload" value="Attach Files" onclick="submitfrm(this.form)">
<cfinput type="button" name="cancel" value=" Cancel " onclick="window.close()">
</cfform>
Это то, что я получаю, когда вижу исходный текст в полученной отправке:
<input name="file1" id="file1" type="file" value=".../cfusion.war/neotmp8858718543274653167.tmp" maxlength="60" size="50" /><br>