Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Javascript-找不到函数?!从onClick调用,函数位于同一页中_Jquery_Javascript - Fatal编程技术网

Jquery Javascript-找不到函数?!从onClick调用,函数位于同一页中

Jquery Javascript-找不到函数?!从onClick调用,函数位于同一页中,jquery,javascript,Jquery,Javascript,我有一个非常奇怪和令人困惑的错误 这是我的密码: {if="$pjax === false"}{include="header"}{/if} <script type="text/javascript"> $(document).ready(function() { function clickclear(thisfield, defaulttext) { if (thisfi

我有一个非常奇怪和令人困惑的错误

这是我的密码:

{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}
{if=“$pjax==false”}{include=“header”}{/if}
$(文档).ready(函数(){
功能单击清除(此字段,默认文本){
if(thisfield.value==defaulttext){
thisfield.value=“”;
}
}
功能单击调用(此字段,默认文本){
如果(thisfield.value==“”){
thisfield.value=默认文本;
}
}
});
  • 记得我吗
{if=“$pjax==false”}{include=“footer”}{/if}
您可以看到有两个功能,
单击清除
单击调用
。从
onClick
onBlur
上的表单输入调用这些函数。但是,当我运行它们时,会出现以下javascript错误:

未捕获引用错误:未定义clickclear

未捕获引用错误:未定义clickrecall


有什么想法吗?我知道这可能很简单,但我看不出来。

这是因为您的函数位于
.ready()
回调函数中。这些在全局范围内是不可见的(这很好)

最好使用jQuery的事件附件方法,如
.on()

另外,Chrome还有一个
占位符
属性,其作用类似于占位符文本:

<input type="text" placeholder="username" />
<input type="password" placeholder="password" />


没有理由将函数包装在document.ready中。这是因为这些函数仅在.ready()函数中可用:它们是该函数的私有函数。当我没有使用document.ready时,仍然会出现相同的错误。请将您的代码限制为浏览器获得的内容,而不是模板化的源代码!谢谢这很有效。但对于这样一个小功能来说,似乎有相当多的代码,这是针对移动网站的,所以我想限制尽可能多的代码。我想我可以将这个想法应用到一个更小的代码中,用于所有的输入。非常感谢是的,我知道placeholder:P,但尽管它是一个移动站点,但我喜欢保持代码与IE和such@DanSpiteri您可以缩小生产代码,这样做更好,因为对于干净的代码,“关注点分离”(将HTML、CSS和JS彼此分离)。
<input type="text" placeholder="username" />
<input type="password" placeholder="password" />