in trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js [2246:2366]
function _getValue(formElement)
{
var shadowElem = formElement;
var elementType = formElement.type;
// When we're dealing with an array of elements, find the
// real element type by looking inside the array.
if (!elementType && formElement.length)
{
// See bug 3651045; IE can put "fieldsets" in with
// form elements!
for (var i = 0; i < formElement.length; i++)
{
elementType = formElement[i].type;
if (elementType != (void 0))
{
shadowElem = formElement[i];
break;
}
}
}
if (elementType == "checkbox")
{
if (formElement.length)
{
for (var i = 0; i < formElement.length; i++)
{
// See above for why we check each element's type
if (formElement[i].type == "checkbox" &&
formElement[i].checked)
{
return formElement[i].value;
}
}
}
else
{
return formElement.checked;
}
}
else if (elementType == "select-multiple")
{
var multiResult = new Array();
for (var i = 0; i < formElement.length; i++)
{
if(formElement.options[i].selected)
{
multiResult[multiResult.length] = formElement.options[i].value;
}
}
return (multiResult.length > 0) ? multiResult : "";
}
else if (elementType.substring(0,6) == "select")
{
formElement = shadowElem;
var selectedIndex = formElement.selectedIndex;
// selectedIndex exists and non-negative
if (selectedIndex != (void 0) &&
selectedIndex != null &&
selectedIndex >= 0)
{
var opt = formElement.options[selectedIndex];
var value = opt.value;
if (!value)
{
// If there's no value, it could be for two reasons:
// (1) The user has only specified "text".
// (2) The user explicitly wanted "value" to be empty.
// We can't really tell the difference between the two,
// unless we assume that users will be consistent with
// all options of a choice. So, if _any_ option
// has a value, assume this one was possibility (2)
for (var i = 0; i < formElement.options.length; i++)
{
if (formElement.options[i].value)
return value;
}
// OK, none had a value set - this is option (1) - default
// the "value" to the "text"
return opt.text;
}
return value;
}
// no selected value
return "";
}
else if (elementType == "radio")
{
if (formElement.length)
{
for (var i = 0; i < formElement.length; i++)
{
// See above for why we check each element's type
if (formElement[i].type == "radio" &&
formElement[i].checked)
{
return formElement[i].value;
}
}
}
else
{
if (formElement.checked)
{
return formElement.value;
}
}
// no selected value
return "";
}
else
{
return formElement.value;
}
}