Javascript 为什么onchange没有';不行?

Javascript 为什么onchange没有';不行?,javascript,html,Javascript,Html,我只是在网上寻找答案,但还没有找到任何答案。我在玩谷歌的api翻译,我对JS有问题。事实上,我的代码是100%确定,除了一个操作 我的问题是当时没有给出翻译。js将信息发送到google后,它不会等到给出翻译。取而代之的是,它继续阅读我的代码,这样它就不会停下来寻找答案。它先把信息翻译出来,然后再过一段时间才能得到答案。因为我想翻译,所以我做了一个甜蜜的循环。因为我不知道如何停止js,所以我用不同的输入文本框完成了一个页面,在我的循环中,当收到数据时,它会发送到文本框的值,这就是问题所在。当文本

我只是在网上寻找答案,但还没有找到任何答案。我在玩谷歌的api翻译,我对JS有问题。事实上,我的代码是100%确定,除了一个操作

我的问题是当时没有给出翻译。js将信息发送到google后,它不会等到给出翻译。取而代之的是,它继续阅读我的代码,这样它就不会停下来寻找答案。它先把信息翻译出来,然后再过一段时间才能得到答案。因为我想翻译,所以我做了一个甜蜜的循环。因为我不知道如何停止js,所以我用不同的输入文本框完成了一个页面,在我的循环中,当收到数据时,它会发送到文本框的值,这就是问题所在。当文本被更改时,我想再次进入我的js函数,因此如果js更改了值,当我得到翻译时,它将返回到我的循环。简单有效,但如果我在输入框中输入:

onchange="myfunction()"

循环不起作用。但最奇怪的是,如果我手动更改文本,那么该函数就会工作,就像onchange只在人更改文本时工作,而js更改文本时不工作一样。有什么解决办法吗?可能是dinamic侦听器或类似的东西?

只有当用户更改输入值时才会触发
onchange
事件。如果输入被编程更改,则不应触发


从任何设置值的函数调用函数。

当用户(并且只有用户)更改值时,
onchange
事件被设计为触发,因此只有在值更改并且字段失去焦点后才会触发

有帮助的初学者和你所说的口腔
  • 您应该查看
    onkeyup
    onblur
  • 如果输入值是由JavaScript设置的,那么为什么不在设置后调用事件呢
  • 我不知道颊是什么。

    我的最佳猜测是:它是西班牙语中“loop”的意思。

    你说的这个bucle是什么?也许值得一看像jquery这样的框架,并在dom完成后使用$(document)来处理jsloaded@Matti他说它是“甜的”,所以可能他指的是“扣”,这是一道带水果的烤盘,有点像“皮匠”。当我翻译很多译文的时候,没有什么比吃一些美味的蓝莓扣更让我喜欢的了。我说“这很甜”,说这正是我想要的。这不是口腔的问题,问题是,我通过js更改了文本框的值,我想在文本框获得新值时调用我的函数。翻译API是否提供了一个回调函数参数,您可以在翻译完成后为其提供一个要调用的函数?我不能。我不知道何时会得到答案以及是否调用该函数在bucle内部,它将在得到第一个答案之前调用google的API。如果它不等待结果返回,它将如何设置输入值?google.language.translate(text,“en”,“fr”,function(result){document.getElementById('translation')。value=result.translation;});Js完成这一行,然后在没有答案的情况下继续下一行。然后,当答案神奇地给出时,这行设置值是有效的。是的。这是一种回调,是事件驱动编程(大多数JS都是这样)中的一种常见模式。将函数作为参数传递。当数据返回时调用该函数。在该功能中工作是否有人只有在更改值后才能被解雇,但不会失去焦点?据我所知不是这样。也许您可以关注文本输入的onchanged事件以外的内容。更改文本输入的函数还有其他作用吗?例如,它可能调用submit form-if,您可以监听form元素的onsubmit事件。问题是,如果我编写一些代码来更改更多内容,那么在将文本写入文本框之前就会完成。听起来很荒谬,但是。。。