1

我想向时事通讯脚本添加一个小功能,但是我无法正确完成它,因为它会导致 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 中工作,尽管我无法弄清楚。

一些专家的建议将不胜感激。

非常感谢,帕特里克

4

3 回答 3

1

一些建议是不要将完整的 javascript 放入您的 html 属性中。

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

如果你使用 jQuery 的选择器之类的东西来分隔这两者,那就更整洁了。:)

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

于 2012-08-20T04:14:38.363 回答
1

你应该这样写:

value="example@email.com" onblur="if (this.value == \'\'){this.value = \'example@email.com\'; }" onfocus="if (this.value == \'example@email.com\') {this.value = \'\'; }"
于 2012-08-20T04:14:42.933 回答
1

我明白你在这里想要做什么。

考虑使用更语义化的HTML5 Placeholder(或者如果你支持 IE 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 中显示但不编译为字符串的结尾或开头的单引号和双引号。

希望有帮助。:)

于 2012-08-20T04:28:12.103 回答