我对 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/