调用按键事件而不实际按下 JavaScript 中的键

invoking keypress event without actually pressing key in javascript

本文关键字:JavaScript 事件 调用 不实际      更新时间:2023-09-26

嗨,我希望在JavaScript中触发空格键而不按文本框中的空格键,我尝试了此代码,请帮助我解决此问题

  <script language="javascript" type="text/javascript">
        jQuery(document).ready(function () {
            var getOldValue = jQuery("#<%=txtCompany.ClientID%>");
                var e = jQuery.Event("keydown");
                e.which = 32; //key code
                jQuery("#<%=txtCompany.ClientID%>").trigger(e);
        });
    </script>

和 aspx 页是

 <asp:TextBox ID="txtCompany"></asp:TextBox>

您正在客户端脚本上使用服务器端标记。这是行不通的。相反,ASP 将创建一个 id 等于 txtCompany 的 HTML 输入框。所以让我们使用它。

jQuery(document).ready(function () {
    var inputBox = jQuery("#txtCompany"), 
        getOldValue = inputBox.val(),
        e = jQuery.Event("keydown");
    e.which = 32; //key code
    inputBox.trigger(e);
});

我还没有像使用 jQuery.Event() 那样完成事件触发,但如果这是有效的代码,那么这应该可以解决您的问题。

您可以使用initKeyEvent和jquery

var e = jQuery.Event("keydown");
e.which = 50; //key code
$("#some_element").trigger(e);

在 vanilla JavaScript 中,它是这样工作的:

// Create the event
var evt = document.createEvent( 'KeyboardEvent' );
// Init the options
event.initKeyEvent(
         "keypress",        //  the kind of event
          true,             //  boolean "can it bubble?"
          true,             //  boolean "can it be cancelled?"
          null,             //  specifies the view context (usually window or null)
          false,            //  boolean "Ctrl key?"
          false,            //  boolean "Alt key?"
          false,            //  Boolean "Shift key?"
          false,            //  Boolean "Meta key?"
           9,               //  the keyCode
           0);              //  the charCode
// Dispatch the event on the element
el.dispatchEvent( evt );