在javascript中输入关键事件

时间:2017-04-16 16:47:03

标签: javascript

我也使用jQuery。我试图按下输入按钮调用一个方法keyPressEvent。代码中的错误

    strMsg = "Select the file from which you want to import data"
mypath = GetPath(strMsg, True)
mypath = mypath

Dim strFilename As String: strFilename = mypath
Dim strTextLine As String
Dim strArray() As String
Dim count As Integer

Dim regex As New RegExp
regex.IgnoreCase = True
regex.Global = True
'This pattern matches only commas outside quotes
'Pattern = ",(?=([^"]*"[^"]*")*(?![^"]*"))"
regex.Pattern = ",(?=([^""]*""[^""]*"")*(?![^""]*""))"

Dim iFile As Integer: iFile = FreeFile
Open strFilename For Input As #iFile
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
count = 0

Do Until EOF(1)
    Line Input #1, strTextLine
    count = 0

'regex.replaces will replace the commas outside quotes with <???> and then the
'Split function will split the result based on our replacement
    On Error GoTo ErrHandler
    strTextLine = regex.Replace(strTextLine, "<???>")
    strArray = Split(regex.Replace(strTextLine, "<???>"), "<???>")
    Set rs = db("AIRLINES").OpenRecordset
    Dim word As Variant
    With rs
        .AddNew
        For Each s In rs.Fields
            word = Replace(strArray(count), """", "")
            count = count + 1
        'the below line shows error
            s.Value = word
        Next
        .Update
        .Close
    End With
lpp:
    Loop

db.Close
Close #iFile
MsgBox ("Imported Successfully")
Exit Sub
ErrHandler:
   Resume lpp

3 个答案:

答案 0 :(得分:2)

()之后不需要myOpr.keyPressEvent,否则函数将在中间执行。

工作示例:(首先在面板上单击焦点)

    var AplOperations = function() {
      // this function i want to call when an enter button is pressed
   
      this.keyPressEvent = function() {
          // my code goes here
          var elem = document.getElementById("test");
          elem.innerHTML += "key pressed<br>"
      }
    } 

    var myOpr = new AplOperations();

    document.onkeyup = myOpr.keyPressEvent;
<div id="test"></div>

答案 1 :(得分:1)

你必须等待keyup并在回调中执行你的东西。现在它在脚本执行时执行。

   document.onkeyup = function () {
        myOpr.keyPressEvent();
   }

Updated Demo

答案 2 :(得分:1)

这一行错了:

document.onkeyup = myOpr.keyPressEvent();

使用括号立即调用该函数,并将结果分配给onkeyup处理程序。如果删除括号,您的函数将被指定为处理程序