我写的javascript的代码为什么运行之后显示为undefined?哪里的定义不明确?实在不懂。求助~

<html>
<head>
<script type="text/javascript">
var a=document.myform.user.length;
</script>
</head>
<body>

<form name="myform">
<input type="text" name="user">邮箱<hr></form>
<button onClick="alert(a);">press</button>

</body>
</html>

哪里有出错么?文科计算机的大作业真心难啊。。。这个只是我做的一个简化模型。但还是alert不出来,估计是方法不对。后面更复杂的条件语句更无从谈起了。求助~

第1个回答  2012-05-18
var a=document.myform.user.length;
换成
function getLength(){
var a=document.myform.user.length;
alert(a);
}
---------------------------分割线------------------------------------
onClick="alert(a);"
换成
onclick="getLength()"
即可追问

还是undefined

追答

抱歉忘了写value了,一直想写来着,写的时候忘了

第2个回答  2012-05-18
var a=document.myform.user.length;
改成:
var a=document.getElementsByName("user")[0].value.length;

<input type="text" name="user">
改成:
<input type="text" name="user" value="" />追问

var a=document.myform.user.length;
不是定义过了么。。。小弱求助~

追答

已修改了回答

追问

var a=document.getElementsByName("user")[0].value.length; 这样写才是对的?我之前那种写法有什么问题么?
还有如果我要用的是indexOf()函数是不是要写成
var a=document.getElementsByName("user")[0].value.indexOf("@");如果我要检测这个字符串中有没有@这个字符的话?还有[0]是指数组中的第一个元素么?可是我的这个数组中只有一个元素,是不是就不用写[0]了?

追答

测试了一下,顺序有些问题

邮箱

var a = document.getElementsByName("user")[0].value.length;

press

测试了一下,var a = document.myform.user.length;这种写法在ie中是可以的,但在其它浏览器中可能会有些问题.

追问

现在是不论输入什么字符显示都是0。。。

追答

应该是0,因为 var a = document.getElementsByName("user")[0].value.length是在网页加载的时候执行,改变文本内容后不再会执行.可以改成:
press

function geta(){
return document.getElementsByName("user")[0].value.length;
}

你是要验证邮箱格式,对吗?我这里有一个回答应该适合你:
http://zhidao.baidu.com/question/424772723.html?oldq=1

追问

嗯,其实跟那个要求不太一样。还是希望自己能够掌握方法,才能融会贯通。不然也只是完成了这个作业,具体什么也没有学到。
不过还是谢谢你呢。

第3个回答  2012-05-18
<html>
<head>

</head>
<body>

<form name="myform">
<input type="text" name="user" id="user">邮箱<hr></form>
<button onClick="alert(document.getElementById('user').value.length);">press</button>
</body>
</html>追问

嗯,赞答案~
这个是必须要用id才可以么?
如果我想要把函数拎出来定义该怎么写呢?如果我要用的是indexOf()函数是不是要写成
document.getElementsByid("user").value.indexOf("@");如果我要检测这个字符串中有没有@这个字符的话?
是不论什么样的函数都要.value.某函数名么?

追答

一般情况不是批处理的话,建议使用ID,这样保证操作的控件是唯一的。

邮箱
press

function test()
{
var a = document.getElementById('user').value.length;
alert(a);;
}

追问

你太赞了~真的好神奇啊。。。
根据这个代码就可以举一反三了。。。。
小弱伤不起。。。
跪谢~
还有一个问题是不是什么样的函数都要.value.某函数名,这里的value等于是指定了是这个量的值?

本回答被提问者采纳

我写的javascript的代码为什么运行之后显示为undefined?哪里的定 ...
onClick="alert(a);"换成 onclick="getLength()"即可

js为什么运行完后会出现undefined
出现原因有以下2种:1、变量没赋初始值 2、函数没有返回值 示例:第一种情况: var a; alert(a);\/\/这里没有初始化值,会出现undefined第一种情况: var a='1'; function k(){ } a=k();\/\/这里函数没有返回值,会出现undefined ...

javascript中为什么会出现undefined
undefined 代表未定义,默认定义变量不赋值时,该变量的值就是 undefined。当你调用一个不存在的变量、对象时就会提示,比如:定义一个对象 const a = {b: { c: '1' }},这个时候你调用 a.b.c 就会返回 1,如果你调用 a.c.d ,就会爆 connot read properties of undefined( reading 'd')...

为什么我javascript代码这样写,弹出来的提示框显示的是undefined
因为document.getElementsByTagName("div")返回的是一个数组,并不是单个元素对象,要在后面加[0]

undefined什么意思?
5、undefined是指页面出现了未知错误,提示undefined一般是在开发网站的时候定义不正确或是转换不正确,或是找不到定义才会提示undefined未定义这个错误,如果只是浏览网页,不必在乎,换个时间浏览网页undefined是一个特殊值,通常。6、1undefined,一个特殊值,通常用于指示变量尚未赋值在高级程序设计语言设计...

undefined是什么原因?如果出现undefined怎么办?
出现undefined的原因有以下几种:1.变量或函数未定义:如果你在代码中使用了一个未定义的变量或函数,就会出现undefined。2.返回值问题:在函数中没有明确的return语句,或者return语句没有返回任何值,就会返回undefined。3.对象属性未找到:如果你尝试访问一个对象的属性,而该属性不存在,那么该属性的值...

,javascript,前辈帮忙看看这串代码为什么输出undefined
\/\/使用var声明,都是局部作用域\/\/如果不写,就会覆盖全局变量function foo(){ \/\/ 局部变量 var h=4; console.log(h); \/\/ 局部变量被改变 h=7; console.log(h); function fcc(){ \/\/ 局部变量 var h=8; console.log(h); \/\/ 这个局部变量被改变 ...

javascript为什么错误是TypeError: undefined is not a function_百度...
这个问题是因为你调用的函数未定义;不过没有看到你的具体代码,你可能是以下情况:1、的确是没有定义这么一个函数;2、定义函数了,但是在你调用的时候,你的函数并没有初始化。将(function () {alert("help me !!!");var gameDraw = new gameDraw("myCanvas");alert("help me11111 !!!"...

为什么以下的javascript代码用for循环输出结果的时候全部是...
出现0是因为你在给数组赋值为[0,1,2],调用arr[0]自然输出0;出现undefined是因为你在第二个for循环里循环条件变量是j,而循环体内变量是i,i在第一个循环之后的值是3,而arr[3]这个值是未定义的,所以出现undefined、undefined、undefined的结果,把i改成j即可 ...

为什么javascript的对象会返回undefined??
首先,网页出现“object object”通常是由于JavaScript在处理对象时,不正确地将其转换为了字符串所导致的。在详细解释之前,我们需要了解JavaScript中的对象。对象是JavaScript中的一种基本数据结构,它可以包含多个键值对,用于存储和组织数据。然而,当试图将一个对象直接转换为字符串时,JavaScript...

相似回答