?? prompts_param.js
字號:
}
// if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox
var dropDownListName = paramName + "SelectValue";
var dropDownListCtrl = inform[dropDownListName];
if (dropDownListCtrl != null)
{
if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL)
{
hiddenField.value = CR_NULL;
return true;
}
}
discreteVal = inform[paramName + "DiscreteValue"];
if (discreteVal != undefined || inform[paramName + "DiscreteValueHour"] != undefined)
{ // editable
if ( type == "dt" || type == "d" || type == "t")
{
var hiddenCtrl = inform[paramName+"DiscreteValueHidden"];
var hourCtrl = inform[paramName+"DiscreteValueHour"];
var minuteCtrl = inform[paramName + "DiscreteValueMinute"];
var secondCtrl = inform[paramName + "DiscreteValueSecond"];
var ampmCtrl = inform[paramName + "DiscreteValueAMPM"];
value = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
if (value.length == 0) return false;
}
else
value = discreteVal.value;
}
else
{
// not editable
discreteVal = inform[paramName+"SelectValue"];
value = discreteVal.options[discreteVal.selectedIndex].value;
//alert(value);
}
if ( ! checkSingleValue ( value, type ) ) {
if (discreteVal.focus && discreteVal.type.toLowerCase ())
discreteVal.focus ();
return false;
}
else
value = encodePrompt(value);
hiddenField.value = value;
return true;
}
/////////////////////////////////////
// sets prompt value for a range into the hidden form field in proper format so that it can be submitted
function setPromptRangeValue (inform, type, paramName)
{
hiddenField = inform[promptPrefix + paramName];
if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked )
{
value = CR_NULL; //NULL is a literal for, uhmm.. a NULL
hiddenField.value = value;
return true;
}
// if both defaultdropdownlists selected item is _crNULL_, put it into hiddenfield
// if one of them is _crNULL_, it is not a valid option, do nothing
var lowerDropDownListName = paramName + "SelectLowerBound";
var upperDropDownListName = paramName + "SelectUpperBound";
var lowerDropDownListCtrl = inform[lowerDropDownListName];
var upperDropDownListCtrl = inform[upperDropDownListName];
if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null)
{
if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL
&& upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL)
{
hiddenField.value = "_crNULL_";
return true;
}
else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL
|| upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL)
{
alert(L_BadValue);
return false;
}
}
lowerOptions = inform[paramName + "SelectLowerOptions"];
upperOptions = inform[paramName + "SelectUpperOptions"];
lowerBound = inform[paramName + "LowerBound"];
upperBound = inform[paramName + "UpperBound"];
lowerBoundHidden = inform[paramName + "LowerBoundHidden"];
upperBoundHidden = inform[paramName + "UpperBoundHidden"];
lowerBoundDropdown = inform[paramName + "SelectLowerBound"];
upperBoundDropdown = inform[paramName + "SelectUpperBound"];
var editables = true;
//handle select box, not text box case
if (lowerBound == undefined && inform[paramName + "LowerBound" + "Hour"] == undefined)
{
editables = false;
lowerBound = lowerBoundDropdown;
upperBound = upperBoundDropdown;
lowerBound = lowerBound.options[lowerBound.selectedIndex];
upperBound = upperBound.options[upperBound.selectedIndex];
}
lowerUnBounded = (lowerOptions.selectedIndex == (lowerOptions.length - 1));
upperUnBounded = (upperOptions.selectedIndex == (upperOptions.length - 1));
lowerChecked = (lowerOptions.selectedIndex == 0);
upperChecked = (upperOptions.selectedIndex == 0);
uvalue = lvalue = "";
if ( ! lowerUnBounded )
{
if ( (type == "dt" || type == "d" || type == "t") && (editables))
{
var lhourCtrl = inform[paramName+"LowerBound" + "Hour"];
var lminuteCtrl = inform[paramName + "LowerBound" + "Minute"];
var lsecondCtrl = inform[paramName + "LowerBound" + "Second"];
var lampmCtrl = inform[paramName + "LowerBound" + "AMPM"];
lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl);
if (lvalue.length == 0) return false;
}
else
lvalue = lowerBound.value;
if ( ! checkSingleValue ( lvalue, type ) ) {
if (lowerBound != undefined && lowerBound.focus)
lowerBound.focus();
return false;
}
}
if ( ! upperUnBounded )
{
if (( type == "dt" || type == "d" || type == "t") && (editables))
{
var uhourCtrl = inform[paramName+"UpperBound" + "Hour"];
var uminuteCtrl = inform[paramName + "UpperBound" + "Minute"];
var usecondCtrl = inform[paramName + "UpperBound" + "Second"];
var uampmCtrl = inform[paramName + "UpperBound" + "AMPM"];
uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl);
if (uvalue.length == 0) return false;
}
else
uvalue = upperBound.value;
if ( ! checkSingleValue ( uvalue, type ) ) {
if (upperBound != undefined && upperBound.focus)
upperBound.focus();
return false;
}
}
value = lowerUnBounded ? "{" : lowerChecked ? "[" : "(";
if ( ! lowerUnBounded )
value += encodePrompt(lvalue);
value += "_crRANGE_"
if ( ! upperUnBounded )
value += encodePrompt(uvalue);
value += upperUnBounded ? "}" : upperChecked ? "]" : ")";
if ( debug )
alert (value);
if (lowerUnBounded && upperUnBounded)
{
alert(L_BadBound);
return false;
}
if (!lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type))
{
return false;
}
hiddenField.value = value;
return true;
}
/////////////////////////////////////
// sets prompt value into the hidden form field in proper format so that it can be submitted
function setPromptMultipleValue (inform, type, paramName)
{
hiddenField = inform[promptPrefix + paramName];
values = inform[paramName + "ListBox"].options;
if ( values.length == 0 )
{
value = "_crEMPTY_"; //if value is empty, set to empty string
}
else
{
value = "";
for ( idx = 0; idx < values.length; ++idx )
{
// first value could be empty string, then chcking value.length != 0 could miss one empty string
if ( idx != 0 )
value += "_crMULT_"
value += values[idx].value;
}
}
if ( debug )
alert (value);
hiddenField.value = value;
//NOTE: we'll always return true as the validation is done before values are added to select box
return true;
}
///////////////////////////////////////
// check and alert user about any errors based on type of prompt
var regNumber = /^(\+|-)?((\d+(\.|,| |\u00A0)?\d*)+|(\d*(\.|,| |\u00A0)?\d+)+)$/
var regCurrency = regNumber;
var regDate = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/
var regDateTime = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/
var regTime = /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/
function checkSingleValue ( value, type )
{
if ( type == 'n' && ! regNumber.test ( value ) )
{
alert ( L_BadNumber );
return false;
}
else if ( type == 'c' && ! regCurrency.test ( value ) )
{
alert ( L_BadCurrency );
return false;
}
/*else if ( type == 'd' && ! regDate.test ( value ) )
{
alert ( L_BadDate );
return false;
}
else if ( type == "dt" && ! regDateTime.test ( value ) )
{
alert ( L_BadDateTime );
return false;
}
else if ( type == 't' && ! regTime.test ( value ) )
{
alert ( L_BadTime );
return false;
}*/
//by default let it go...
return true;
}
function checkRangeValue (fvalue, tvalue, type)
{
// determine if the start is smaller than the end
if ((type == "n") || (type == "c"))
{
// Is a number, or currency
if (eval (DelocalizeNum (fvalue)) > eval (DelocalizeNum (tvalue)))
{
alert(L_RangeError);
return false;
}
}
else if (type == "d"){
//Is a Date
if (eval("new " + fvalue) > eval("new " + tvalue)){
alert(L_RangeError);
return false;
}
}else if (type == "t"){
//Is a Time
var comp1 = eval("new Date(0,0,0," + fvalue.substring(fvalue.indexOf('(') + 1, fvalue.indexOf(')') + 1));
var comp2 = eval("new Date(0,0,0," + tvalue.substring(tvalue.indexOf('(') + 1, tvalue.indexOf(')') + 1));
if (comp1 > comp2){
alert(L_RangeError);
return false;
}
}else if (type == "dt"){
//Is a DateTime
var comp1 = eval("new Date" + fvalue.substring(8, fvalue.length));
var comp2 = eval("new Date" + tvalue.substring(8, tvalue.length));
if (comp1 > comp2){
alert(L_RangeError);
return false;
}
}
else if (type == "text")
{
// is a string
if (fvalue.toLowerCase() > tvalue.toLowerCase())
{
alert(L_RangeError);
return false;
}
}
// otherwise, let it go
return true;
}
function DelocalizeNum(value)
{
// trim spaces first
var numStr = value.replace(/\s/g, "");
// get rid of grouping first
var tempStr = "";
var index = numStr.indexOf(groupSep);
while (index != -1)
{
tempStr += numStr.substr(0, index);
numStr = numStr.substr(index + groupSep.length, numStr.length - index - groupSep.length);
index = numStr.indexOf(groupSep);
}
tempStr += numStr;
index = tempStr.indexOf(decimalSep);
var neutralStr = "";
if (index != -1)
{
neutralStr += tempStr.substr(0, index);
neutralStr += ".";
neutralStr += tempStr.substr(index + decimalSep.length, tempStr.length - index - decimalSep.length);
}
else
{
neutralStr = tempStr;
}
return neutralStr;
}
// Disable enter key checking for multibyte languages since the enter key is used for committing characters
var isEnabledLanguage = (! ((userLanguage == "ja") || (userLanguage == "ko") || (userLanguage == "zh")) )
var isNav = (navigator.appName == "Netscape");
if (isEnabledLanguage)
{
if(isNav) {
document.captureEvents(Event.KEYUP);
}
document.onkeyup = checkValue;
}
function checkValue(evt) {
var buttonVal = "";
if (isNav) {
if (evt.which == 13 && (evt.target.type == "text" || evt.target.type == "password")) {
buttonVal = evt.target.value;
}
} else {
if (window.event.keyCode == 13 && (window.event.srcElement.type == "text" || window.event.srcElement.type == "password")) {
buttonVal = window.event.srcElement.value;
}
}
if (buttonVal != "") {
submitParameterValues ();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -