簡體   English   中英

驗證firefox JSP中的textfield onkeypress事件

[英]validate textfield onkeypress event in firefox JSP

我編寫了onKeyPress事件,該事件在用戶輸入一些文本時驗證文本,然后從某個字段跳出時應該驗證文本,並且如果未輸入任何內容或輸入了錯誤的值,則應該給出錯誤信息以通知用戶,並將焦點返回到該字段,並且用戶必須除字段的幫助按鈕外,不允許進入下一個字段。

<jade:input type="text" name="dtxtDesigCd" 
    value="" size="10" maxlength="8" 
    classname="input" disabledclass="disabled-input" style="color: black"  
    datasource="dsDesigHourDetail:desigCode"
    onkeypress= "checkDesignation(this, event);">
</jade:input> 

我還有一個自定義的JSP標記“ PickList”,它基本上是一個按鈕,該按鈕顯示一個模態窗口,其中包含有關相關字段的數據庫幫助,從幫助窗口中選擇后,從數據庫中選擇的記錄將顯示在JSP的文本字段中。

我們以前的供應商使用了經過修改的SOFIA框架,現在我必須維護代碼。 早期代碼的問題在於,該按鈕必須雙擊才能獲得幫助,因為它使用的是onblur而不是onkeypress,並且需要多次嘗試,因為它一直在給出錯誤。

先前使用onblur的代碼是

    onblur="setValue('DESIGNATION');" onkeyup="capitalize(this);"

現在已被替換為

    onkeypress= "checkDesignation(this, event);">

JSP中的幫助按鈕/ PickList的代碼如下:

<rap:pickfromlist name="picklistDesignation" datasource="dsDesigHourDetail" 
    pflheading="Designation Details" focusfield="dtxtDesigCd"
    pflcolumnsdesc="Designation Code, Description" 
    fieldlist="distinct emp_desig_cd, emp_desig_desc " 
    lookuptable="pmm_designation" orderby="emp_desig_cd"
    targetproperty="desigCode, designation" 
    whereclause=" executive_post='N' and crew_flg = 'N'" /> 

在該字段中,捕獲的指定描述是從選擇列表中選擇的,或者是通過setValue方法提交表單后提交的,該方法通過隱藏變量操作以表單的形式發送傳遞給服務器的值,並提交了表單。

<jade:input type="text" name="dlblDesigDesc" value="" size="50" 
    classname="labeltext" style="color: black" 
    datasource="dsDesigHourDetail:designation" enabled="False">
</jade:input>

checkDesignation(obj,evt)定義為

function checkDesignation(obj, evt) {
    var evt = (evt) ? evt : (window.event) ? event : null;
    if (evt) {
        var len = TrimString(obj.value).length;
        alert("Designation : " + obj.value);
        if (evt.keyCode == 9 && len >= 0) {
            if (len == 0) {
                setErrMessage('Designation must be entered and not blank');
                document.forms[0].htmlPageTopContainer_pageForm_detailDesigHourForm_dtxtDesigCd.focus();
                document.forms[0].htmlPageTopContainer_pageForm_detailDesigHourForm_dtxtDesigCd.value = '';
                setValue('DESIGNATION');
                return false;
            } else {
                capitalize(obj);
                setValue('DESIGNATION');
                return true;
            }
        }
    }
} 

檢查這個

    $("#textbox").bind("onKeyPress ", function (e) {
                if (e.altKey || e.ctrlKey || e.shiftKey){
                    return true;
    }
    else{
    // you have this text box inner text in this.val() and can be checked with 
           your validate function.
    }
            });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM