<input type="text"/>未输入时属性value的默认值--js学习之路

在百度ife刷题是自己的一个错误引发了我对<input type="text"/>的学习。

先贴代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>example</title>
  </head>
<body>
  <label for="weather_input">请输入北京今天空气质量:<input id="weather_input" type="text"/></label>
  <button id="confirm_button">确认</button>
  <p>你输入的值是:<span id="value_show">尚未输入</span></p>
<script type="text/javascript">
window.onload=function(){
  var button=document.getElementById("confirm_button");
  var span=document.getElementById("value_show");
  var input=document.getElementById("weather_input").value;
  button.onclick=function(){
  span.innerHTML=input;
}
}
</script>
</body>
</html>

这段代码语法上是正确的,不过逻辑上是有问题的:var input=document.getElementById("weather_input").value;该语句中input获取了input输入框的默认值,之后再触发button.onclick时,input的值无法即时更新,也就无法达到程序即时显示效果。

这引出了今天探讨的问题:在<input type="text"/>中未规定value的初始值同时用户未输入时,value的默认值是什么?

null还是undefined还是""?

从var input=document.getElementById("weather_input").value看,我们可以看到document.getElementById("weather_input")这个元素节点对象是存在的,不为空,因此排除null。

至于到底是""还是undefined,我通过实践找到了答案。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>example</title>
  </head>
<body>
  <label for="weather_input">请输入北京今天空气质量:<input id="weather_input" type="text"/></label>
  <button id="confirm_button">确认</button>
  <p>你输入的值是:<span id="value_show">尚未输入</span></p>
<script type="text/javascript">
window.onload=function(){
  var button=document.getElementById("confirm_button");
  var span=document.getElementById("value_show");
  alert(document.getElementById("weather_input").value===undefined);//验证是否等于undefined
  alert(document.getElementById("weather_input").value==="");//验证是否等于""
}
}
</script>
</body>
</html>

通过上述代码,我看到的程序运行结果是:第一个弹出框显示为false;第二个弹出框显示为true。

结论显而易见:在<input type="text"/>中未规定value的初始值同时用户未输入时,value的默认值是""。

时间: 2024-12-20 01:15:48

<input type="text"/>未输入时属性value的默认值--js学习之路的相关文章

input type =text,按回车键自动提交

1.当form表单中只有一个<input type="text" name='name' />时按回车键将会自动将表单提交 <form id='form1' action='a1.jsp' method='post'> <input type='text' name='name' /> </form> 再添加一个<input type="text"/>按下回车将不会自动提交,但是页面上显示一个不知所云的输入

html5与js关于input[type=&#39;text&#39;]文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的value点击全选状态onclick=&quot;select();&quot;。做购物车页面时会要用到。

关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的点击全选状态onclick="select();".做购物车页面时会要用到. input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange: 1.onchange事件与onpropertychange事件的区别:onchange事件在内容改变(两次

如何用jquery获取&lt;input id=&quot;test&quot; name=&quot;test&quot; type=&quot;text&quot;/&gt;中输入的值?

如何用jquery获取<input id="test" name="test" type="text"/>中输入的值?$(" #test ").val()$(" input[ name='test' ] ").val()$(" input[ type='text' ] ").val()$(" input[ type='text' ]").attr(&quo

(原)css属性选择器定义 优先级问题 (input[type=text])

今天遇到一个问题调试了很久,关于css的优先级问题. 像常规的id选择器(#test) > 类选择器class(.test) > 标签选择器input (中间还有一些类型不详举了),相比大家都很清楚 这次遇到就是input[type=text] {background:red} 和 类选择器 .aa{background:black} 的优先级问题(aa是定义在input 的class上). 举例如下: <html> <style> input{ background:

JavaScript通过preventDefault()使input[type=text]禁止输入但保留光标

一.说明 取消事件的默认动作. 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作).例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单.注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作.无论哪种情况,调用该方法都没有作用. 二.语法 event.preventDefault() 三.示例 3.1 阻止<a>元

JQuery获取input type=&quot;text&quot;中的值的各种方式

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JQuery获取文本框的值</title> <meta http-equ

使用freemarker模板引擎,后台返回的时间格式(datetime类型)无法显示在input type=&quot;text&quot;中显示

详情: 在使用freemarker是,在后台查出user,其中有入职时间entryDate(date类型),当我想要将 entryDate 显示在 <input type="text" value="${user.entryDate}"/>时,出现错误,无法显示 显示页面: 原因: 因为freemarker无法确定用那种格式来显示这个时间 解决办法: 在 <input type="text" value="${user

html中去掉文本框(input type=&quot;text&quot;)的边框或只显示下边框

去掉: <input   type="text"   name="textfield"   style="border:0px;">只留下边框: <input type="text" style="BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: solid&

ie7下的&lt;input type=&quot;text&quot;&gt;高度

之前很少去做低版本浏览器兼容,由于公司为一些使用低版本浏览的客户着想,所以并没有抛弃IE7.当时做页面的时候我用的是bootstrap,但是很可惜的是不兼容IE7,当使用IETester中的ie7查看页面的时候页面错乱,内容部分消失.我只好根据页面当时情况进行调整,当我设置<input type="text">的时候,我发现给的高度跟实际的不符合,后来仔细观察发现,ie7下的<input type="text">是你给的高度+padding,