如何让onblur和onfocus在php脚本中工作?

时间:2012-08-20 04:08:22

标签: php javascript

我想在新闻稿脚本中添加一个小功能,但我无法正确完成,因为它会导致Dreamweaver出错:

我的原始代码:

    $data.='<input style="float:left; margin-right:10px;" type="text" id="'.$formidreal.'-wysija-to" class="'.$classValidate.'" name="wysija[user][email]" />';

我想补充以下内容:

    value="example@email.com" onblur="if (this.value == ''){this.value = 'example@email.com'; }" onfocus="if (this.value == 'example@email.com') {this.value = ''; }"

我很确定必须采用不同的格式才能在PHP中工作,尽管我无法弄明白。

非常感谢一些专家建议。

非常感谢, 帕特里克

3 个答案:

答案 0 :(得分:1)

一些建议不是将完整的javascript放在你的html属性中。

尝试调用函数,然后在函数内部执行逻辑。

如果你使用像jQuery的选择器之类的东西将两者分开,那就更加简洁了。 :)

参考:http://api.jquery.com/blur/

答案 1 :(得分:1)

你应该这样写:

value="example@email.com" onblur="if (this.value == \'\'){this.value = \'example@email.com\'; }" onfocus="if (this.value == \'example@email.com\') {this.value = \'\'; }"

答案 2 :(得分:1)

我知道你在这里想做什么。

考虑使用HTML5 Placeholder,这更具语义性(或者如果你支持I.E 7.0支持,也许JS可以)。

如果您对JQuery感到满意,请使用它。

如果没有,请学习它。

如果现在还不能学习......那么,PHP代码应该是:

$data.='<input style="float:left; margin-right:10px;" type="text" id="'.$formidreal.'-wysija-to" class="'.$classValidate.'" name="wysija[user][email]"." value=\"example@email.com\" onblur=\"if (this.value == ''){this.value = \'example@email.com\'; }\" onfocus=\"if (this.value == \'example@email.com\') {this.value = ''; }\"" />';

但是,我仍然建议您不要选择INLINE JS。

PS:我可能在代码中犯了一个错误,但逻辑是使用

逃避
\

表示您希望在HTML中显示但未编译为字符串的结尾或开头的单引号和双引号。

希望有所帮助。 :)