在没有实际按下javascript键的情况下调用按键事件

时间:2012-08-09 09:36:08

标签: javascript asp.net

嗨我希望在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>

2 个答案:

答案 0 :(得分:0)

您正在客户端脚本上使用服务器端标记。这不行。相反,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()的方式触发事件,但如果这是有效的代码,那么这应该可以解决你的问题。

答案 1 :(得分:0)

你可以使用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 );