2017-06-14 2 views
0

Je veux déclencher l'entrée de la zone de texte keypress avec jquery sans taper.
Jetez un oeil à cet extrait:Comment déclencher l'entrée de la zone de texte de l'événement de touche de pression en utilisant avec jquery sans taper

var e = jQuery.Event("keypress"); 
e.keyCode = $.ui.keyCode.ENTER; 
$("input").trigger(e); 

Est-ce que ce qu'est un besoin?
Mais ces codes a erreur:

Impossible de lire la propriété « qui » de undefiend

Comment puis-je contourner cette erreur et lancez événement textbox d'entrée à l'aide keypress avec jquery sans taper?


J'ai aussi essayé ceci:

$('#input').val('string'); 
$('#input').keypress(); 

même erreur

Répondre

1

Pour $.ui.keyCode fonctionne, vous devez inclure jquery-ui.js

Sans jquery-ui

$(function(){ 
 
    var e = $.Event("keypress"); 
 
    e.which = 13; 
 
    $('input').trigger(e); 
 
}); 
 

 
$('input').on('keypress',function(e){ 
 
    if(e.which==13) 
 
    alert('Enter pressed automatically'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" />

Avec jquery-ui

$(function(){ 
 
    var e = $.Event("keypress"); 
 
    e.which = $.ui.keyCode.ENTER; 
 
    $('input').trigger(e); 
 
}); 
 

 
$('input').on('keypress',function(e){ 
 
    if(e.which==13) 
 
    alert('Enter pressed automatically'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet"/> 
 

 
<input type="text" />

+0

Mais j'ai toujours cette erreur! Devrais-je importer jquery ui comme ça? https://www.sitepoint.com/dynamically-load-jquery-library-javascript/ – MoonLight

+0

Non .. Vous pouvez le faire comme ceci - '' –

1

Utilisez cette solution avec jquery

$(document).ready(function() { 
 
    var e = $.Event("keypress", {which: 13}); 
 
    $('input').trigger(e); 
 
}); 
 
$('input').on('keypress',function(e){ 
 
    console.log(e.which+' -- KeyPress event Fired'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" />