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()、or.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?
    }
});
于 2013-10-29T15:59:03.553 に答える