我正在使用以下php和javascript
if ($name == "" || $name == $required)
{
echo"<p><span>Name</span></p><input size=\"60\" id=\"name\" name=\"name\" type=\"text\" value=\"$name\" onfocus=\"if (this.value == '$required') {this.value = '';}\" onblur=\"if (this.value == '') this.value=this.defaultValue;\"$name\""
;}
结果如下:
<p><span>Name</span></p><input size="60" id="name" name="name" type="text" value="Required" onfocus="if (this.value == 'Required') {this.value = '';}" onblur="if (this.value == '') this.value=this.defaultValue;"Required" />
然而,w3c验证器说:
第60行,第220列:第60行,第220列:属性值文字只能在VI分隔符后出现在属性规范列表中 ...'';}“onblur =”if(this.value =='')this.value = this.defaultValue;“Required”/&gt;
您是否忘记了标记属性与其声明值之间分隔的“相等”符号?典型语法是attribute =“value”。
在同一行我也会收到其他错误:
错误行60,第221列:省略了“输入”的结束标记,但指定了OMITTAG NO ...'';}“onblur =”if(this.value =='')this.value = this.defaultValue;“Required”/&gt;
你可能忽略了关闭一个元素,或者你可能想要“自我关闭”一个元素,也就是说,用“/&gt;”结束它而不是“&gt;”。
信息专栏60,第25栏:开始标记在这里
名称
任何人都有任何想法让这个有效吗? 谢谢 马克
答案 0 :(得分:0)
始终在JavaScript和PHP中使用大括号{}
;忽视忽略它们的懒鬼代码;严格的代码是最好的代码。
其次PHP使用单引号&#39;和双引号不同。
<?php
$a = 'user';
echo 'Hello $a';//Hello $a
echo "Hello $a";//Hello user
?>
其次连接(PHP中的句点,加上JavaScript中的符号)就是你在价值方面遇到的麻烦。避免使用双引号(如果编程的上下文很明显,那么从长远来看,可以忽略不计的性能增益)。
<?php
$a = 'user';
echo 'Hello '.$a.', how are you?';//Hello user, how are you?
?>
我已将input
元素切换为PHP中的几行,只是为了便于阅读。我从来没有避免在我的实时(或许多人称之为&#34;生产&#34;)代码中长长的代码行。这是一个很好的方式来指出你已经完成&#34;那段代码。日志查看程序Hoo WinTail允许您在使用滚轮时使用Ctrl
键正确实现水平滚动,这是我希望它们在任何地方实现的,尤其是Notepad ++(强烈推荐的高级代码编辑器)。
同时保持HTML属性按字母顺序排列。如果您的代码可以使用高级查找和替换等程序预测,它将极大地提高您快速修复早期不良编码习惯的能力。
完全带来:
<?php
if ($name == "" || $name == $required)
{
echo '<p><span>Name</span></p>';
echo '<input id="name" name="name" ';
echo 'onblur="if (this.value == '') {this.value = '.$required.';}" ';
echo 'onfocus="if (this.value == '.$required.') {this.value = '';}" ';
echo 'type="text" value="'.$name.'" />';
}
?>
最后,您正在使用XHTML。这里需要一个重要的澄清。最高级别的编程是使用XHTML5。
有解析器接受代码:
代码的标准是:
您希望将HTML5与XML解析器(XHTML5)一起使用:
<?php
if (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml'))
{
header('Content-Type: application/xhtml+xml; charset=UTF-8');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
}
else
{
header('Content-Type: text/html; charset=UTF-8');
}
?>
XML解析器更严格和(Gecko渲染引擎,在Firefox中,但现在使用Waterfox),因此它将输出错误而不是让它们发生。意识到错误允许您修复它们并大大提高兼容性。如果您不了解,那么您将无法解决这些错误,因此您不会更有能力,并且更难以将自己与其他人区分开来。在一个大多放弃质量的世界中,质量至关重要。在我的个人资料中查看我的网站以获取更多优秀代码(查看源代码)。祝你好运!