javascript中关与this参数传递的问题

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/... <!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>
</head>
<script type="text/javascript" >
function sub()
{

chang1(obj);

}

function chang1(obj)
{

var obValue=obj.value;

}
</script>
<body>
<form id="form1" name="form1" enctype="multipart/form-data" method = "post" action="" >
<center>
<input type="text" name="name" value="" onchange="chang1(this)"/>
<input type="button" name="Submit2" value="重置" onclick="reset()" />   
<input type="button" name="Submit3" value="提交" onclick="sub()"/>
</center>
</form>
</body>
</html>

请问:在onchange="chang1(this)"这句中,this指的是什么,在function sub()函数中怎么调用chang1()函数,谢谢
展开
 我来答
guoflysky
2012-04-12 · TA获得超过125个赞
知道答主
回答量:184
采纳率:100%
帮助的人:69.8万
展开全部
首先,你上面的js写法就有问题了。onchage="change1(this)"中的this表示当前表单组件的DOM对象,你上面的意思是表示name="name" 的文件框DOM对象,当值改变时,传this对象之后你的chang1(this)的方法是获取到了name="name" 的文件框的值。
如果你想在function sub()函数中调用chang1(),可以看我下面的写法
function sub(){
var obj = document.getElementByName('name')[0];//获取name="name" 的文件框DOM对象
chang1(obj);
}
希望对你有帮助。。。
更多追问追答
追问
document.getElementByName('name')[0]
中[0]是什么意思
追答
js获取Dom节点,document.getElementByName返回一个Dom节点数组,document.getElementByName('name')[0]表示第一个name="name" 的input DOM对象
也可是你写的
对象,如果还有其他的比如还有:
此时document.getElementByName('name').length == 3;
document.getElementByName('name')[0] DOM节点是

document.getElementByName('name')[1] DOM节点是
document.getElementByName('name')[2] DOM节点是

如果还看不懂的话,建议你去学学js操作DOM
百度网友bae7667
2012-04-12 · TA获得超过936个赞
知道小有建树答主
回答量:404
采纳率:100%
帮助的人:150万
展开全部
首先建议你把控件加上id属性 即id="name"之类的
1、this指的是<input type="text" name="name" value="" onchange="chang1(this)"/>
在js里可以根据doucument.getElementById("name")得到(前提你加了id属性)

2、你想做提交的时候调用js函数去校验。但写的方式不对。
首先把<input type="button" name="Submit3" value="提交" />
里面的type="button" 改成type="submit";然后把onclick="sub()"去掉;
再来在form里写 onsubmit="sub()"即
<form id="form1" name="form1" enctype="multipart/form-data" method = "post" action="" onsubmit="sub()">
这样你提交的时候会先到sub这个JS方法中,如果校验不允许提交直接写return;如果不写则提交成功
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友780ab9a
2012-04-12 · 超过18用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:52.5万
展开全部
this是指这个input标签本身,sub函数直接调用change1函数,在change1函数中写上return就行。
更多追问追答
追问
直接调用的话,我怎么写chang1()中的参数才能得到 中的值?
追答
直接return this.value就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xyq079656
2012-04-12 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:106万
展开全部
this 指的是name为name的input

先得到input元素 做为参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式