当用户开始键入文本输入时,在单独的div中触发jQuery自定义事件

时间:2013-10-29 15:54:33

标签: 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 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");
});

当我有" showSubmitButton" textInput.click函数中的行在单击时出现了提交按钮,但我希​​望仅当用户在输入中输入内容时才显示该按钮。
我也使用过.keyPress(),但是这两个关键事件都触发了“没有方法”。错误。我认为我必须错误地使用它们,但我不知道如何。

2 个答案:

答案 0 :(得分:1)

事件处理程序的速记函数不是驼峰式的,因此它是.keydown().keypress()等,而不是.keyDown().keyPress()。也就是说,我会使用inputkeypress事件(取决于浏览器支持),并检查文本框的值是否为空字符串:

textInput.find('input:text').on('input', function(e) {
    if($.trim(this.value).length > 0) {
        submitButton.trigger('showSubmitButton');
    }
    else {
        // consider hiding the submit button?
    }
});

答案 1 :(得分:1)

它不是keyDown - 它是keydown