Onblur和id的相同“名称”引起歧义

时间:2012-07-18 17:05:47

标签: javascript ajax

我正在制作这个有Ajax的表单,我想在客户端使用javascript进行验证。但是,当我将id name和onblur fnc名称相同时,我遇到了一个问题:

<label>Title*:</label>

<?php 
echo '<input type="text" id="title1" value = "" onblur="title1(this.value)"/> <span id="err1"> </span> <p></p>';
?>

基本上Ajax不起作用,因为我的fnc名称与id名称相同。我只是想知道为什么它会引起歧义,因为onblur和id需要diff参数。

1 个答案:

答案 0 :(得分:1)

某些浏览器会自动使ID为ID的元素成为全局window对象的属性。为了避免这种情况,明确声明它们非常重要。试试这个:

var title1 = function(val) {
    // function body
}

这基本上会强制浏览器将title1保留为变量,而不是对元素的引用。