我有一些代码应该在select元素更改时运行.我用这种方式使用jquery:
$("#myselect").change(function() {
.......
});
Run Code Online (Sandbox Code Playgroud)
但是当用户使用关键字箭头更改选择时,我希望这些代码也运行.我发现为此目的的事件是'keyup'.所以将是:
$("#myselect").keyup(function() {
.......
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能将这两个事件结合起来?
我试图延迟一个AJAX请求,以便在输入单元的最后一个键盘后2-3秒发送它.
到目前为止,我已经设法延迟了请求,但是在2-3秒后,我收到了一个请求,为该字段中的每个密钥发送...
如何让jQuery取消第一个,只发送最后一个密钥?
这是迄今为止的代码:
$('#lastname').focus(function(){
$('.terms :input').val(""); //clears other search fields
}).keyup(function(){
caps(this); //another function that capitalizes the field
$type = $(this).attr("id"); // just passing the type of desired search to the php file
setTimeout(function(){ // setting the delay for each keypress
ajaxSearchRequest($type); //runs the ajax request
}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
上面的代码等待1秒,然后根据按键发送4-5个AJAX请求.我只想在最后一次发送之后keyup
发现一些在StackOverflow中使用Javascript的类似解决方案,但由于我对编程知之甚少,我无法将它们实现到我的项目中.
[已解决]最终工作代码,感谢@ Dr.Molle:
$('#lastname').focus(function(){
$('.terms :input').val("");
}).keyup(function(){
caps(this);
$type = $(this).attr("id");
window.timer=setTimeout(function(){ // setting the delay for each keypress
ajaxSearchRequest($type); //runs the ajax request
}, 3000);
}).keydown(function(){clearTimeout(window.timer);});
Run Code Online (Sandbox Code Playgroud)
这是 …
我有这个简单的代码:
<body>
<input type="text" onkeyup="this.value = (new Date()).getSeconds()" onchange="alert(1)" />
</body>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么当我按下键时文本框值已经改变但是onchange事件没有触发.我如何解雇onchange事件?
我知道在使用 JavaScript 或 jQuery 时。我可以在对象上添加一个事件侦听器,以便在按下某个键时调用函数。
但是,如果函数是从 HTML 启动的,如下例所示:
function callMyFunction (importantothervalue) {
//How can I get the keycode?
}
Run Code Online (Sandbox Code Playgroud)
<textarea onkeyup="callMyFunction(1);"></textarea>
<textarea onkeyup="callMyFunction(2);"></textarea>
<textarea onkeyup="callMyFunction(3);"></textarea>
Run Code Online (Sandbox Code Playgroud)
有没有办法从这个上下文中检索关键代码?或者如果我想获得关键代码,我是否总是需要制作一个事件处理程序?
有什么方法可以让我在生成的函数调用中包含重要的其他值,而无需对id或class属性中的信息进行编码并从那里提取它?
我的脚本工作,但我不明白如何使它在textarea /输入和按下这些键时不启动功能.aka:当用户按下该键时启动事件,除非用户在textarea/input中.
$('body').keyup(function (event) {
var direction = null;
if (event.keyCode == 37) {
$('#wrapper').fadeOut(500)
} else if (event.keyCode == 39) {
$('html,body').animate({scrollTop: $('body').offset().top}, {duration: 1500, easing: 'easeInOutQuart'}
)
return false;
}
})
Run Code Online (Sandbox Code Playgroud) 我想<br/>
在用户点击输入按钮时将(换行符)添加到文本框中.
我怎样才能在jquery onkeyup
事件中实现它.可以向我展示示例或实现它的任何好网站.
谢谢
我最近在我支持的网络应用程序中添加了一些预测文本输入字段.
大不了吧?不是真的,好像你的网络应用程序不这样做 - 你已经落后于时代,你的最终用户正在抱怨.(至少这是它在这里的方式).
所以,我的问题与"向上"箭头键有关.
预测文本框有一个onkeyup
监听器.
处理程序根据用户输入的字符来分离键击并执行某些操作.
向上箭头键允许用户在我创建的加载了"建议"的div中导航.我有几个变量跟踪索引等...基本上,当用户点击向上箭头时,我会将div的id更改为具有一些与之关联的css的id,这将使div看起来好像被选中一样.此外,我将获取该div中的值并将其分配给用户可以键入的文本框.
问题是审美问题.与我正在学习的所有文本框一样,向上箭头键将重置光标位置.这是在我将新值写入文本字段之前发生的.
因此,在每个向上箭头笔划中,用户在文本框中看到一个跳跃光标(它将跳到开头,并立即显示在结尾处).
这是代码 -
if (event.keyCode === 38 && currentUserInput.length > 0) {
// user has toggled out of the text input field, save their typing thus far
if (currentToggledIndex == -1) {
currentToggledIndex = autoFillKeywordsList.length-1;
savedKeywordUserInput = currentUserInput;
}
else {
// revert currently selected index back to its original id
document.getElementById("kw_selected").id = "kw_" + currentToggledIndex ;
// user has toggled back into user input field
if (currentToggledIndex == …
Run Code Online (Sandbox Code Playgroud) Realy keyup
使用jQuery 搞砸了触发事件.
这是一个干净的例子
当我输入任何一个时input
,它们都会触发事件,但是当我尝试以编程方式触发它时($(element).trigger('event')
)只触发第二个触发,但我希望两者都能触发.
我在哪里想念什么?
UPD我无法改变处理程序的附加方式!
我正在使用bootstrap typeahead.
它取决于这个jQuery代码工作:
el.on('keyup', doSomething() )
Run Code Online (Sandbox Code Playgroud)
在Windows上的Chrome上运行正常.在Android上的Chrome上它没有.keyup事件永远不会被触发.它所绑定的元素肯定是焦点.
这似乎是最近的发展.
Chrome 28.0.1500.64 Android 4.1.2 SGP321 Build/10.1.1.A.1.307
谢谢
--Justin Wyllie
我需要一个输入 (type='text') 将结果发送到我的服务器以检查用户输入的内容的可用性。
我使用委托将事件处理程序添加到元素:
$(document).delegate('#signup', 'pageshow', function() {
var keydown = function(e) {
e = e || window.event;
var char = e.which || e.keyCode;
if (char == 8) {
$(".pagemessage").text("Pressed: '<BACKSPACE>'");
appcheckDomainOnKeyDown();
}
return true;
};
var keyup = function(e) {
e = e || window.event;
var char = e.which || e.keyCode;
if (char == 8) {
appcheckDomainOnKeyUp();
}
return true;
};
var keypress = function(e) {
e = e || window.event;
var char = e.which || e.keyCode;
var str …
Run Code Online (Sandbox Code Playgroud)