2013-04-05 99 views
0

我寫過onKeyPress事件,它在用戶輸入一些文本時驗證文本,然後從某個字段中選項卡應該驗證文本,如果沒有輸入或輸入了錯誤的值,應該給出錯誤以通知用戶並且焦點應該回到該字段,並且除了用於字段的幫助按鈕外,用戶不能被允許到下一個字段。在Firefox中驗證textfield onkeypress事件JSP

<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標籤「領料單」,這是基本上是一個顯示 與數據庫相關領域幫助一個模式窗口,並從數據庫中選擇記錄從顯示到文本框在JSP中選擇後一個按鈕幫助窗口。

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

此前代碼爲

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

現已被替換

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

求救按鈕的代碼/ PICKLIST在JSP如下:

<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'" /> 

在此字段中,指定的描述是從提貨單中提取或在提交表單後捕獲的d通過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; 
      } 
     } 
    } 
} 
+1

你犯了一個非常漂亮的能解密。現在確切的問題是什麼? – 2013-04-05 13:35:19

回答

1

檢查這個

$("#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. 
    } 
      });