⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prompts_param.js

📁 根据图书馆日常图书管理工作的需求和图书借阅的管理流程
💻 JS
📖 第 1 页 / 共 3 页
字号:
    }

    // 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 + -