Я регулярно пользуюсь ColdFusion 8/9/10. Код ниже прекрасно работает в CF9 и CF10. (Я разработал это в 9). Это не работает в CF8, хотя.
Если вы запустите код ниже (внизу) в CF9 и CF10, вы должны получить результаты HTML сразу ниже:
<select>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option selected="" value="3">Option 3</option>
</select>
Если вы запустите код ниже в CF8, вы получите эту ошибку:
The SELECTED parameter to the WrapOption function is required but was not passed in.
В CF8, как бы я изменил этот код, чтобы сделать "выбранный" параметр (или любой другой параметр) необязательным в CF8?
<cfscript>
Options = WrapOption("Option 1", 1);
Options = Options & WrapOption("Option 2", 2);
Options = Options & WrapOption("Option 3", 3, "Selected");
SelectBox = WrapSelect(Options);
writeOutput(SelectBox);
// WRAP OPTION
function WrapOption(Content, Value, Selected) {
LOCAL.Content = ARGUMENTS.Content;
LOCAL.Properties = " value='#ARGUMENTS.Value#'";
// SELECTED
if (structKeyExists(ARGUMENTS, "Selected")) {
LOCAL.Properties = LOCAL.Properties & " selected";
}
LOCAL.Item = "<option #LOCAL.Properties#>#LOCAL.Content#</option>";
return LOCAL.Item;
}
// WRAP SELECT
function WrapSelect(Options, Class, ID) {
LOCAL.Options = ARGUMENTS.Options;
LOCAL.Properties = "";
// CLASS
if (structKeyExists(ARGUMENTS, "Class")) {
LOCAL.Properties = LOCAL.Properties & " class='#ARGUMENTS.Class#'";
}
// ID
if (structKeyExists(ARGUMENTS, "ID")) {
LOCAL.Properties = LOCAL.Properties & " id='#ARGUMENTS.ID#'";
}
LOCAL.Item = "<select #LOCAL.Properties#>#LOCAL.Options#</select>";
return LOCAL.Item;
}
</cfscript>