2009-11-30 54 views
0

我有两个属性,我想分配给同一事件:Attributes.Add - 独立工作,不在一起

ddlBuyer.Attributes.Add("onclick", "$('#tbxProdAC').val('');");

ddlBuyer.Attributes.Add("onclick", "$('#txtbxHowMany').val('');");

如果我评论一出,其他的其他作品精细。但是如果我只留下两条线,只有一条被解雇。

有人能向我解释背后的逻辑这一点,进一步的是,我应该怎么巢状,这样,当ddlBuyer执行onclick事件,既txtbxHowMany & tbxProdAC返回'值>

回答

1

只能添加一个属性与给定的名称,以便您要添加的第二个替换第一个。这相当于在HTML标记中有两个“onclick”属性。将无法工作。

但这并不意味着您不能针对给定事件触发多个函数。你可以,例如,

ddlBuyer.onclick = function() { 
    //first thing to do 
    //second thing to do 
}; 

另一种方法是使用jQuery库; jQuery的“绑定”命令可以将多个函数绑定到单个事件。这样做的好处是你不必担心你覆盖了添加到别处的事件绑定(上面的例子会这样做)。

+0

感谢您为我解释雅各布的逻辑 – MrDean 2009-11-30 17:15:10

0

尝试:

//分割线以提高可读性。

ddlBuyer.Attributes.Add("onclick", "function(){ 
    $('#tbxProdAC').val(''); 
    $('txtbxHowMany').val(''); 
};"); 

或者:

ddlBuyer.Attributes.Add("onclick", 
    "$('#tbxProdAC').val(''); 
    $('txtbxHowMany').val('');"); 
+0

是的,只是摆脱你的第一个例子。内联事件处理程序不能像那样工作。 – 2009-11-30 16:53:56

+0

谢谢你们,这帮助了我很多......该死......我不能给出两个正确的答案! – MrDean 2009-11-30 17:15:45

0

不是将onclick函数硬编码到标记中,而是在服务器端生成绑定客户端onclick事件的客户端代码。可能要使用像jQuery这样的框架来做到这一点。

相关问题