![](/img/trans.png)
[英]Detecting “value” of input text field after a keydown event in the text field?
[英]Trigger keydown on text-input with jQuery, retain value after event
在angularjs网站上使用Tampermonkey。 每当我打开url时,我都会用一个值预填充输入框,但是搜索是通过键入触发的。 因此,我需要一个keydown事件(即“空格”)来触发搜索。
我已经弄清楚了如何触发一个keydown事件,但是它会覆盖输入框中已经存在的值。 我如何保留它,同时仍触发按键?
(function() {
'use strict';
var herId = getParameterByName('Q');
window.setTimeout(function() {
var el = document.querySelector('.form-control');
el.value = herId;
}, 200);
window.setTimeout(function() {
var e = jQuery.Event("keydown");
e.which = 32; // # Some key code value
$("input").val(String.fromCharCode(e.which));
$("input").trigger(e);
}, 1600);
})();
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
我使用延迟是因为页面需要一些时间来加载。
每次keydown事件运行时,都会清除旧值,并用新的String.fromCharCode字符替换。
//Try this
(function() {
'use strict';
var herId = getParameterByName('Q');
window.setTimeout(function() {
var el = document.querySelector('.form-control');
el.value = herId;
}, 200);
window.setTimeout(function() {
var e = jQuery.Event("keydown");
e.which = 32; // # Some key code value
$("input").val($(this).val() + String.fromCharCode(e.which));
$("input").trigger(e);
}, 1600);
})();
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.