日期:2014-05-16  浏览次数:20289 次

javascript 初学者问题...
小弟初学js   想请教一个菜鸟问题,希望各位高手多多指点   谢谢

<HTML>
<HEAD>
<SCRIPT   LANGUAGE= "JavaScript ">
function   echo(form,currentField){
if   (currentField   ==   "first "){
form.second.value   =   form.first.value;
}else{
form.first.value   =   form.second.value;
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT   TYPE= "text "   NAME= "first "   onchange   =   "echo(this.form,this   name); ">
<br>
<INPUT   TYPE= "text "   NAME= "second "   onchange   =   "echo(this.form,this   name); ">
</FORM>
</BODY>
</HTML>


我想问一下这段代码中
1.   函数function   echo(form,currentField)为什么要有2个参数,是不是要达到什么目的所以才会加入参数?  
2.   if中的条件   currentField   ==   "first "   可以写成   currentField   ==   "second "   吗   两种写法有什么区别吗?  
3.   "echo(this.form,this   name) "   中的this.form   是代表当前这个Form   对象吗?this.name   是代表当前字段对象的name属性吗?
4.   这段代码为什么运行就出现错误?

------解决方案--------------------

是一段
使两个input值同步的代码
参数form是表单 <form> 的引用,currentField是触发onchange事件的对象的名字.引入参数是为了函数处理方便一点.
换成currentField == "second " 也可以,不过代码要做相应的改变.
this代表当前事件对象,this.form代表,事件对象所属的表单. this.name指事件对象的名字.
运行出错是因为把.打成了空格.

<HTML>
<HEAD>
<SCRIPT LANGUAGE= "JavaScript ">
function echo(form,currentField){
if (currentField == "first "){
form.second.value = form.first.value;
}else{
form.first.value = form.second.value;
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<INPUT TYPE= "text " NAME= "first " onchange = "echo(this.form,this.name); ">
<br>
<INPUT TYPE= "text " NAME= "second " onchange = "echo(this.form,this.name); ">
</FORM>
</BODY>
</HTML>

------解决方案--------------------
1. 函数function echo(form,currentField)为什么要有2个参数,是不是要达到什么目的所以才会加入参数?
自定义函数,把值套入进去就明白了

2. if中的条件 currentField == "first " 可以写成 currentField == "second " 吗 两种写法有什么区别吗?
可以,不过要把if 和else里面的内容换一下,不然你就写不进东西了

3. "echo(this.form,this name) " 中的this.form 是代表当前这个Form 对象吗?this.name 是代表当前字段对象的name属性吗?


4. 这段代码为什么运行就出现错误?
因为echo(this.form,this name)要改成echo(this.form,this.name)