Javascript 当用户开始键入文本输入时,在单独的div中触发jQuery自定义事件
我正在尝试在用户开始输入文本时显示一个单独的div(自定义的“继续”按钮)。Javascript 当用户开始键入文本输入时,在单独的div中触发jQuery自定义事件,javascript,jquery,Javascript,Jquery,我正在尝试在用户开始输入文本时显示一个单独的div(自定义的“继续”按钮)。 我目前正在使用: var submitButton = $('#submitButton'); submitButton.hide(); submitButton.on("showSubmitButton", function(event) { $( this ).show(); $( this ).css('opacity', '0'); $( this ).fadeTo(400, 0.6);
我目前正在使用:
var submitButton = $('#submitButton');
submitButton.hide();
submitButton.on("showSubmitButton", function(event) {
$( this ).show();
$( this ).css('opacity', '0');
$( this ).fadeTo(400, 0.6);
});
var textInput = $('#textInput');
textInput.click(function() {
$( this ).find('input:text').val(''); // this clears the default 'type your name here' text
});
textInput.keyDown(function() {
submitButton.trigger("showSubmitButton");
});
当我在textInput.click功能中有“showSubmitButton”行时,提交按钮出现在click上,但我希望该按钮仅在用户在输入中键入内容时出现。我也使用了.keyPress(),但这两个键事件都会触发“hasnoomethod”错误。我想我一定是用错了,但我不知道怎么用。事件处理程序的速记函数不是驼峰式的,所以它是
.keydown()
,.keypress()
等,而不是.keydown()
或.keypress()
。也就是说,我会使用输入
或按键
事件(取决于浏览器支持),并检查文本框的值是否不是空字符串:
textInput.find('input:text').on('input', function(e) {
if($.trim(this.value).length > 0) {
submitButton.trigger('showSubmitButton');
}
else {
// consider hiding the submit button?
}
});
它不是keyDown-它是keyDown提示,第4、5、6行,为什么不将它链接起来,而不是键入$(这个)3次呢?比如show().css().fadeTo()是的,我刚刚意识到(就在我发布了这个问题或课程之后!)keyDown事件中没有驼峰。所以是首都D把它扔掉了。现在可以了。谢谢你的回答-我可以试试这个选择。谢谢-你的选择很好。我将'length>0'更改为'length<2',这样它只在第一次输入时触发(当用户删除到1个字符长度时也会触发,但我可以接受)。