0

我试图在用户开始输入文本输入时出现一个单独的 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");
});

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

4

2 回答 2

1

事件处理程序的简写函数不是驼峰式大小写,所以它是.keydown(),.keypress()等而不是.keyDown()or .keyPress()。也就是说,我会使用inputorkeypress事件(取决于浏览器支持),并检查文本框的值是否不是空字符串:

textInput.find('input:text').on('input', function(e) {
    if($.trim(this.value).length > 0) {
        submitButton.trigger('showSubmitButton');
    }
    else {
        // consider hiding the submit button?
    }
});
于 2013-10-29T15:59:03.553 回答
1

这不是 keyDown - 它是 keydown

于 2013-10-29T16:03:36.217 回答