87,994
社区成员
发帖
与我相关
我的任务
分享<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Jay Skript And The Domsters: Tour dates</title>
<link rel="stylesheet" media="screen" href="styles/basic.css" />
</head>
<body>
<header>
<img src="images/logo.JPG" alt="Jay Skript and the Domsters" />
<nav>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="photos.html">Photos</a></li>
<li><a href="live.html">Live</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</nav>
</header>
<article>
<h1>Contact the band</h1>
<form action="submit.html" method="post">
<fieldset>
<p>
<label for="name">Name:</label>
<input type="text" id="name" name="name" placeholderx="Your name" required="required">
</p>
<p>
<label for="email">Email:</label>
<input type="email" id="email" name="email" placeholderx="Your email address" required="required">
</p>
<p>
<label for="message">Message:</label>
<textarea name="message" id="message" cols="45" rows="7" required="required" placeholderx="Write your message here."></textarea>
</p>
<input type="submit" value="Send">
</fieldset>
</form>
</article>
<script type="text/javascript">
function addLoadEvent(func){
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.onload = func;
}else{
window.onload = function(){
oldonload();
func();
}
}
}
//如果浏览器没有为label元素添加默认行为,可手动写入foucusLables函数
function focusLables(){
var articles=document.getElementsByTagName("article");
if(articles.length==0)return false;
var forms=articles[0].getElementsByTagName("form");
if(forms.length==0)return false;
var labels=forms[0].getElementsByTagName("label");
for(var i=0;i<labels.length;i++){
if(!labels[i].getAttribute("for"))continue;
labels[i].onclick=function(){
var id=this.getAttribute("for");
//这了不写continue,是因为onclick事件中没有循环语句,因此不能使用continue
//故直接return false;
if(!document.getElementById(id))return false;
var element=document.getElementById(id);
element.focus();
}
}
}
addLoadEvent(focusLables);
// resetFields为了兼容低版本不支持placeholderx的浏览器
function resetFields(whichform){
//如果placeholderx浏览器支持,则直接return,不再需要执行下面的代码
//if(Modernizr.input.placeholderx)return;
for(var i=0;i<whichform.elements.length;i++){
var element=whichform.elements[i];
if(element.type=="submit")continue;
var check=element.placeholderx||element.getAttribute("placeholderx");
if(!check)continue;
element.onfocus=function(){
var text=this.placeholderx||this.getAttribute("placeholderx");
if(this.value==text){
this.value="";
this.className="";
}
}
element.onblur=function(){
if(this.value==""){
this.value=this.placeholderx||this.getAttribute("placeholderx");
this.className="placeholderx";
}
}
element.onblur();
}
}
function prepareForms(){
for(var i=0;i<document.forms.length;i++){
var thisform=document.forms[i];
resetFields(thisform);
}
}
addLoadEvent(prepareForms);
</script>
</body>
</html> <input type="email" id="email" name="email" placeholderx="Your email address" required="required">
通过chrome的F12测试<input type="email" id="email" name="email" placeholder="Your email address" required="required">通过测试 if(this.value==text){
this.value="";
this.className="";
}<input type="email" id="email" name="email" placeholderx="Your email address" required="required">这段代码我也没有设置value。
但是我通过document.forms[0].elements[2].value验证的返回值就是 Your email address。
我想知道这是为什么,value会得到一个值。