javaScript 函数传参问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 22:48:06
<script language="javascript">
function checkname(name)
{
if(name.value.length==0)
{
document.getElementById("nameDiv").innerHTML="<font color='red'>用户名不能为空!</font>";
}
}
</script>
--------------------------------------------------------------------
<input name="name" type="text" size="20" onblur="checkname(name)" />
--------------------------------------------------------------------

出不来效果
这样写为什么不对呢??
-------------------------------------------
<script language="javascript">
function checkname()
{
if(document.getElementById("name").value.length==0)
{
document.getElementById("nameDiv").innerHTML="<font color='red'>用户名不能为空!</font>";
}
}
</script>
不传参 这样写就没问题 ~~~~

方案一 ,未保留事件对象作为第一个参数传入

代码如下:

function handler(arg1,arg2){
alert(arg1);
alert(arg2);
}
E.on(document.getElementById('aa'),'click',function(){
handler(arg1,arg2);
});

方案二,保留事件对象作为第一个参数

代码如下:

function handler(e,arg1,arg2){
alert(e);
alert(arg1);
alert(arg2);
}
E.on(document.getElementById('aa'),'click',function(e){
handler(e,arg1,arg2);
});

方案三,给Function.prototype添加getCallback,不保留事件对象

代码如下:

Function.prototype.getCallback = function(){
var _this = this, args = arguments;
return function(e) {
return _this.apply(this || window, args);
};
}
E.on(document.getElementById('aa'),'click',handler.getCallback(v1,v2));

方案四,给Function.prototype添加getCallback,保留事件对象作为第一个参数传入

代码如下:

Function.prototype.getCallback