javascript - 有人请解释一下我遇到困难的这个查询事件

标签 javascript jquery onblur onfocus

我对 javascript/jquery 非常陌生,并且很难理解以下内容:

我在页面的头部加载脚本。

我有一个类似于这样的输入表单...

<input id='registeremail' type='email; name='email' onblur=checkemail() >

<button id='btn1'>Hello</button>

在上述场景中,正如我的头部部分所述,以下内容不起作用。

<script>

   $(document).ready(function(){

   function checkemail() {
       checkthis = $('#registeremail').val();
        $('#btn1').text(checkthis);
   }

   });

</script>

我能让它工作的唯一方法就是这样

保持输入形式如上

<script>

$(document).ready(function(){

   $('#registeremail').focusout( function() {
      checkthis = $('#registeremail').val();
      $('#btn1').text(checkthis);

   });

</script>

这让我发疯。 onblur 与 jquery 不兼容吗?我明显缺少什么?

谢谢

最佳答案

onXXX 属性中使用的名称在全局范围内查找。您的函数位于 $(document).ready() 内,因此函数名称仅在该范围内可用,而在全局范围内不可用。

一般不需要将函数定义放在 $(document).ready() 中。仅当文档加载后才应运行的代码才需要这样做。函数定义不会立即运行,它们只是保存定义。如果函数定义仅由 $(document).read() 中的其他函数使用,则可以将函数定义放在那里,以避免污染全局范围。但如果你想要全局范围内的所有函数,你需要将其取出。

此外,养成在属性值两边加上引号的习惯。仅当值包含某些特殊字符(例如空格或 >)时才严格需要,但总的来说这是个好主意。

onblur='checkemail()'

关于javascript - 有人请解释一下我遇到困难的这个查询事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42848801/

相关文章:

javascript - Onblur功能持续运行

javascript - 使用javascript从html表中提取数据

javascript - XML:如何将项目(HBox/Vbox 的按钮)右对齐

Javascript 函数indexOf 返回不正确的结果

php - 允许网络用户使用 PHP 和 Javascript 更新文本文件的最简单方法?

jquery - 使用jquery自动刷新div

javascript - 如何通过javascript检测用户是否在浏览器中打开了 "view-source:"?

javascript - JQM - 如何克服 TypeError : t. 数据(...)未定义

javascript - 使用 JQuery onblur 设置文本框值

javascript - 如何在 React 中触发 onBlur 事件?