这是我的代码:
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 来执行此操作,但是当我这样做时,它会将其计为正在更改的文本并将按钮更改回来。
有没有什么办法可以只在框中的文本实际更改时才触发?
提前致谢。