javascript检验表单问题!!

lbdzgr123 2011-08-17 10:32:49
代码如下:
<html>
<head>
<script type="text/javascript">
function validateForm()
{
var x=document.forms["myForm"]["fname"].value
if (x==null || x=="")
{
alert("First name must be filled out");
return false;
}
}
</script>
</head>

<body>
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">
First name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>
</body>
</html>






这是验证表单必填项的

其中有一行代码有疑问,就是:var x=document.forms["myForm"]["fname"].value
我知道意思是取得name为myForm表单中的name为fname标签中的值
但是这代码怎么会是这样的?forms是一个表单集合,后面[]中应该是数字的呀,怎么会可以是name???而且后面还可以再加一个["fname"]
太疑惑了,我在w3c教程上没看过这种格式的书写
...全文
280 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbdzgr123 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 mubeibei 的回复:]

HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equi……
[/Quote]


懂了3Q
MuBeiBei 2011-08-17
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>

</head>

<body>
<div>
<p id="bbb">123</p>
<a href="#" id="aaa">321</a>
</div>
<script type="text/javascript">
var a=document.getElementById("bbb").innerHTML;
alert(a)
</script>
</body>
</html>



把script标签放在最下面
lbdzgr123 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 mubeibei 的回复:]

引用 14 楼 lbdzgr123 的回复:
引用 13 楼 mubeibei 的回复:

看我10楼回复~·

你看我12楼啊



。。。p标签不支持name这么访问~·
[/Quote]


我是用id来访问的啊
MuBeiBei 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lbdzgr123 的回复:]
引用 13 楼 mubeibei 的回复:

看我10楼回复~·

你看我12楼啊
[/Quote]


。。。p标签不支持name这么访问~·
lbdzgr123 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 mubeibei 的回复:]

看我10楼回复~·
[/Quote]
你看我12楼啊
MuBeiBei 2011-08-17
  • 打赏
  • 举报
回复
看我10楼回复~·
lbdzgr123 2011-08-17
  • 打赏
  • 举报
回复
哭了,就算是换成p元素,然后是用ID来选取,也没有效果了
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
var a=document.getElementById("bbb").innerHTML;
alert(a)
</script>
</head>

<body>
<div>
<p id="bbb">123</p>
<a href="#" id="aaa">321</a>
</div>
</body>
</html>
MuBeiBei 2011-08-17
  • 打赏
  • 举报
回复
document.name只能用在上面这些元素上才行~·
MuBeiBei 2011-08-17
  • 打赏
  • 举报
回复
用途 1: 作为可与服务器交互数据的 HTML 元素的服务器端的标示,比如 input 、 select 、 textarea 、和 button 等。我们可以在服务器端根据其 Name 通过 Request.Params 取得元素提交的值。

  用途 2: HTML 元素 Input type='radio' 分组,我们知道 radio button 控件在同一个分组类, check 操作是 mutex 的,同一时间只能选中一个 radio ,这个分组就是根据相同的 Name 属性来实现的。


  用途 3: 建立页面中的锚点,我们知道 <a href="URL">link</a> 是获得一个页面超级链接,如果不用 href 属性,而改用 Name ,如: <a name="PageBottom"></a> ,我们就获得了一个页面锚点。


  用途 4: 作为对象的 Identity ,如 Applet 、 Object 、 Embed 等元素。比如在 Applet 对象实例中,我们将使用其 Name 来引用该对象。


  用途 5: 在 IMG 元素和 MAP 元素之间关联的时候,如果要定义 IMG 的热点区域,需要使用其属性 usemap ,使 usemap="#name"( 被关联的 MAP 元素的 Name) 。


  用途 6: 某些特定元素的属性,如 attribute ,和 param 。例如为 Object 定义参数 <PARAM NAME = "appletParameter" VALUE = "value"> 。

MuBeiBei 2011-08-17
  • 打赏
  • 举报
回复
<a href="#" name="aaa">321</a>

a标签好像不行,因为a标签的name有特殊意义,是锚点~·
lbdzgr123 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mubeibei 的回复:]

引用 6 楼 lbdzgr123 的回复:
引用 5 楼 mubeibei 的回复:

引用 4 楼 lbdzgr123 的回复:
那可否讲解一下,下面的代码,为什么可以直接document.b1.src,document竟然可以直接用name
<html>
<head>
<script type="text/javascript">
function mouseOver()
……
[/Quote]


为什么我这段代码没有效果??
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
var a=document.aaa.innerHTML;
alert(a)
</script>
</head>

<body>
<div>
<p>123</p>
<a href="#" name="aaa">321</a>
</div>
</body>
</html>
MuBeiBei 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lbdzgr123 的回复:]
引用 5 楼 mubeibei 的回复:

引用 4 楼 lbdzgr123 的回复:
那可否讲解一下,下面的代码,为什么可以直接document.b1.src,document竟然可以直接用name
<html>
<head>
<script type="text/javascript">
function mouseOver()
{
document.b1.src ="/i/……
[/Quote]

怎么会没意义呢?
document.getElementByName("name")拿的是name相同的集合

而你document.name只能拿单个
lbdzgr123 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mubeibei 的回复:]

引用 4 楼 lbdzgr123 的回复:
那可否讲解一下,下面的代码,为什么可以直接document.b1.src,document竟然可以直接用name
<html>
<head>
<script type="text/javascript">
function mouseOver()
{
document.b1.src ="/i/eg_mouse.jpg"
}
funct……
[/Quote]


如果document.可以直接通过标签的name属性访问节点,那document.getElementByName("name")[0]不就无意义了吗?
MuBeiBei 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lbdzgr123 的回复:]
那可否讲解一下,下面的代码,为什么可以直接document.b1.src,document竟然可以直接用name
<html>
<head>
<script type="text/javascript">
function mouseOver()
{
document.b1.src ="/i/eg_mouse.jpg"
}
function mouseOut()
……
[/Quote]


因为document就是文档对象,他值得就是html文档~·

所以document.可以通过.标签的name属性访问节点
lbdzgr123 2011-08-17
  • 打赏
  • 举报
回复
那可否讲解一下,下面的代码,为什么可以直接document.b1.src,document竟然可以直接用name
<html>
<head>
<script type="text/javascript">
function mouseOver()
{
document.b1.src ="/i/eg_mouse.jpg"
}
function mouseOut()
{
document.b1.src ="/i/eg_mouse2.jpg"
}
</script>
</head>

<body>
<a href="http://www.w3school.com.cn" target="_blank">
<img border="0" alt="Visit W3School!" src="/i/eg_mouse2.jpg" name="b1"
onmouseOver="mouseOver()"
onmouseOut="mouseOut()" />
</a>
</body>
</html>
zhang98722 2011-08-17
  • 打赏
  • 举报
回复
可以这样的
类似于child那种方法都可以
不过有些是[]
有些是.
MuBeiBei 2011-08-17
  • 打赏
  • 举报
回复
var x=document.forms["myForm"]["fname"].value

可以这么写

forms是个键值对形式的,既可以用键也就是值[0]也可以用值['myForm']

其实这种形式document.forms["myForm"]["fname"].value

就是document.myForm.fname.value这样

你想想js对象不就是这种形式吗
var obj = {'name':'aa'};

可以obj.name
也可以obj['name']
softroad 2011-08-17
  • 打赏
  • 举报
回复
var x=document.forms["myForm"]["fname"].value

比如有多个form
forms["myForm"]就可以根据名字取的相应的form
在根据这个["fname"]获取这个form里名字为fname的元素
就是forms["myForm"]["fname"].value

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧