Javascript - 找不到函数?!从onClick调用,函数在同一页面中
Javascript - Function not found?! called from onClick, and function is in same page
我有一个非常奇怪和令人困惑的错误。
这是我的代码:
{if="$pjax === false"}{include="header"}{/if}
<script type="text/javascript">
$(document).ready(function() {
function clickclear(thisfield, defaulttext) {
if (thisfield.value == defaulttext) {
thisfield.value = "";
}
}
function clickrecall(thisfield, defaulttext) {
if (thisfield.value == "") {
thisfield.value = defaulttext;
}
}
});
</script>
<form action='./login' method='post' name='form'>
<ul class="form">
<li><input type="text" name="username" value="Username" id="username" onclick="clickclear(this, 'Username')" onblur="clickrecall(this,'Username')" /></li>
<li><input type="password" name="password" value="Password" id="password" onclick="clickclear(this, 'Password')" onblur="clickrecall(this,'Password')" /></li>
<li><span style='display:block;height:27px;float:left;line-height:27px;'>Remember Me</span> <div id='itoggle' style='float:right;'><input type="checkbox" id="remember" class='itoggle' /></div><div class='clearfix'></div></li>
</ul>
</form>
<a href="javascript: form.submit()" class="button white">Login</a>
{if="$pjax === false"}{include="footer"}{/if}
您可以看到有两个功能,clickclear
和clickrecall
。这些是从 onClick
和 onBlur
上的表单输入调用的。但是,当我运行它们时,我收到以下JavaScript错误:
未捕获的引用错误:未定义单击清除
未捕获的引用错误:未定义单击召回
有什么想法吗?我知道这可能是一件非常简单的事情,但我看不到它。
这是因为您的函数在.ready()
回调中。这些在全局范围内是不可见的(这很好)。
最好使用 jQuery 的事件附件方法,如 .on()
:
$(document).ready(function(){
//your code
function clickclear(){...}
function clickrecall(){...}
//the handlers
$('#username').on('click',function(){ //bind click handler
clickclear(this,'Username'); //things to do on click
}).on('blur',function(){ //chain blur handler
clickrecall(this,'Username'); //things to do on blur
});
$('#password').on('click',function(){ //bind click handler
clickclear(this,'Password'); //things to do on click
}).on('blur',function(){ //chain blur handler
clickrecall(this,'Password'); //things to do on blur
});
...other handlers...
});
附带说明一下,Chrome 有一个placeholder
属性,它的作用类似于占位符文本:
<input type="text" placeholder="username" />
<input type="password" placeholder="password" />
相关文章:
- 如何获取不属于我项目的上一页的URL
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 使用Booklet Jquery插件,我如何验证最后一页是否显示
- 如何在一页网站中使用PHP重定向到一个页面
- Javascript并不是显示在每一页上
- 如何在一页上显示多个Highcharts图表
- jQuery分页下一页和上一页按钮在点击零或超过最后一页后失败
- 如何为AngularJS制作智能表中第一页和最后一页的跳过按钮
- Bootstrap一页导航Fluid网站最小化问题
- 返回上一页时,Javascript仍处于活动状态
- 将jsp重定向到servlet,然后重定向到下一页
- 如何在重定向到asp.net中单击按钮的下一页之前应用javascript警报
- 传递表单值并移动到另一页
- 如何获取数组详细信息另一页
- 根据上一页的用户输入,在页面加载时执行JS函数
- 传递一个javascript onclick函数,在下一页中选中项目
- 从JS函数返回到上一页并保留字段值
- php回调函数到下一页
- 为什么forEachRow函数不影响dhtmx网格中的第二页或下一页
- 使函数影响另一页中的元素