ここに私が持っているコードがあります:
var tourl;
$(document).ready(function(){
$("input#url").bind("textchange",showPage);
$("input#url").bind("textchange",toggleButtons);
$("input#url").focus();
$("form#surlform").submit(function(){
var url = $("input#url").val();
$.get("api/create.php?a=&url=" + url, function(data) {
$("input#url").val(data);
$("input#url").select();
$('#button').hide();
$('#hbutton').show();
tourl = data;
$('#hbutton').bind('click', function() {
window.location = tourl + "-";
});
});
return false;
});
});
$(document).click(function(){
showPage();
});
$(document).mousemove(function(){
showPage();
});
function toggleButtons() {
$('#hbutton').hide();
$('#button').show();
}
ご覧のとおり、データがフォームに入力されると、jQuery は通常のフォーム送信を停止し、代わりに API に接続します。API からの応答で、テキスト ボックスのテキストを応答に変更し、強調表示します。次に、送信ボタンを、API からの出力 (URL) にリンクするボタンに変更します。textchange イベントへのバインドを使用して、フォーム フィールドのテキストが変更されたときにボタンを元に戻しています。
ただし、フィールド内のテキストが実際に変更されたときにトリガーするのではなく、任意のキーを押したように見えます。たとえば、出力をコピーする場合は Ctrl+C を使用しますが、これを行うと、変更されたテキストとしてカウントされ、ボタンが元に戻ります。
ボックス内のテキストが実際に変更されたときにのみトリガーする方法はありますか?
前もって感謝します。