मैंने इस प्रश्न के सभी उत्तर पढ़ लिए हैं और कोई भी समाधान काम नहीं कर रहा है।
इसके अलावा, मुझे वाइब मिल रहा है कि विशेष पात्रों के साथ कीपर ट्रिगर करना बिल्कुल भी काम नहीं करता है। क्या कोई यह सत्यापित कर सकता है कि यह किसने किया है?
मैंने इस प्रश्न के सभी उत्तर पढ़ लिए हैं और कोई भी समाधान काम नहीं कर रहा है।
इसके अलावा, मुझे वाइब मिल रहा है कि विशेष पात्रों के साथ कीपर ट्रिगर करना बिल्कुल भी काम नहीं करता है। क्या कोई यह सत्यापित कर सकता है कि यह किसने किया है?
जवाबों:
यदि आप कीप या कीडाउन इवेंट को ट्रिगर करना चाहते हैं तो आपको बस इतना करना है:
var e = jQuery.Event("keydown");
e.which = 50; // # Some key code value
$("input").trigger(e);
अब jQuery 1.6+ के साथ थोड़ा और संक्षिप्त करें :
var e = jQuery.Event( 'keydown', { which: $.ui.keyCode.ENTER } );
$('input').trigger(e);
(यदि आप jQuery UI का उपयोग नहीं कर रहे हैं, तो इसके बजाय उचित कीकोड में उप करें।)
.trigger(jQuery.Event('name', props))
। उदाहरण देखें jsfiddle.net/9ggmrbpd/1 - ट्रिगर इवेंट के गुण इस प्रकार से पास किए जाते हैं। स्रोत कोड: github.com/jquery/jquery/blob/master/src/event.js#L739
असली उत्तर में कीकोड शामिल करना है:
var e = jQuery.Event("keydown");
e.which = 50; // # Some key code value
e.keyCode = 50
$("input").trigger(e);
हालांकि jQuery की वेबसाइट का कहना है कि जो और कीकोड सामान्यीकृत हैं, वे बहुत बुरी तरह से गलत हैं। E.which और e.keyCode के लिए मानक क्रॉस-ब्राउज़र जांच करना हमेशा सबसे सुरक्षित होता है और इस मामले में दोनों को परिभाषित करें।
e.keyCode = e.which = 50;
एक लाइन में अच्छा होगा। :)
keyCode
काम करने से काम नहीं चलता है । इसे काम करने के लिए दोनों को सेट करना पड़ा
यदि आप jQuery UI का उपयोग कर रहे हैं, तो आप इस तरह कर सकते हैं:
var e = jQuery.Event("keypress");
e.keyCode = $.ui.keyCode.ENTER;
$("input").trigger(e);
ठीक है, मेरे लिए कि इस के साथ काम ...
var e2key = function(e) {
if (!e) return '';
var event2key = {
'96':'0', '97':'1', '98':'2', '99':'3', '100':'4', '101':'5', '102':'6', '103':'7', '104':'8', '105':'9', // Chiffres clavier num
'48':'m0', '49':'m1', '50':'m2', '51':'m3', '52':'m4', '53':'m5', '54':'m6', '55':'m7', '56':'m8', '57':'m9', // Chiffres caracteres speciaux
'65':'a', '66':'b', '67':'c', '68':'d', '69':'e', '70':'f', '71':'g', '72':'h', '73':'i', '74':'j', '75':'k', '76':'l', '77':'m', '78':'n', '79':'o', '80':'p', '81':'q', '82':'r', '83':'s', '84':'t', '85':'u', '86':'v', '87':'w', '88':'x', '89':'y', '90':'z', // Alphabet
'37':'left', '39':'right', '38':'up', '40':'down', '13':'enter', '27':'esc', '32':'space', '107':'+', '109':'-', '33':'pageUp', '34':'pageDown' // KEYCODES
};
return event2key[(e.which || e.keyCode)];
};
var page5Key = function(e, customKey) {
if (e) e.preventDefault();
switch(e2key(customKey || e)) {
case 'left': /*...*/ break;
case 'right': /*...*/ break;
}
};
$(document).bind('keyup', page5Key);
$(document).trigger('keyup', [{preventDefault:function(){},keyCode:37}]);
मामले में आप वर्तमान कर्सर और पाठ चयन को ध्यान में रखना होगा ...
यह मेरे लिए Chrome पर एक AngularJS ऐप के लिए काम नहीं कर रहा था। जैसा कि नादिया मूल टिप्पणियों में बताते हैं, चरित्र इनपुट क्षेत्र में कभी नहीं दिखाई देता है (कम से कम, यह मेरा अनुभव था)। इसके अलावा, पिछले समाधान इनपुट फ़ील्ड में वर्तमान पाठ चयन को ध्यान में नहीं रखते हैं। मुझे एक अद्भुत पुस्तकालय jquery-चयन का उपयोग करना पड़ा ।
मेरे पास एक कस्टम ऑन-स्क्रीन संख्यात्मक कीपैड है जो कई इनपुट क्षेत्रों में भरता है। मुझे करना पड़ा...
धुंधला होने पर, वर्तमान पाठ चयन (प्रारंभ और रोकें) सहेजें
var pos = element.selection('getPos')
lastFocus.pos = { start: pos.start, end: pos.end}
जब मेरे कीपैड पर एक बटन दबाया जाता है:
lastFocus.element.selection( 'setPos', lastFocus.pos)
lastFocus.element.selection( 'replace', {text: myKeyPadChar, caret: 'end'})
आप इसे एक एकल पंक्ति में करना चाहते हैं जिसका आप उपयोग कर सकते हैं
$("input").trigger(jQuery.Event('keydown', { which: '1'.charCodeAt(0) }));
console.log( String.fromCharCode(event.charCode) );
मुझे लगता है कि चरित्र नक्शा करने की कोई जरूरत नहीं है।
इसे इस डॉक्स की तरह पूरा किया जा सकता है
$('input').trigger("keydown", {which: 50});