2011-08-04 51 views
1

我有以下代码:如何覆盖FilteringSelect dojo小部件的onchange事件的默认行为?

dijit.byId('patient').onchange(function(event){ 
     var term=dijit.byId('patient').get('value');                
     patientList.url = ".calendar/search-patient?term="+term; 
     patientList.close();         
}) 

我所试图做的是重写FilteringSelect来Dojo小部件的“的onchange”事件的默认行为。问题是我得到的错误:“这个推迟已经被解决”。

我怎么能覆盖“的onchange”事件的默认行为?谢谢

+0

不熟悉这个框架,但尝试添加'返回false;'为好。 –

+0

我也试过。同样的错误。我认为,一旦它看到那个元素的“onchange”事件,它就会抛出错误,所以它不会到达preventDefault()点。 – sica07

+0

如果你添加'alert('debug');'你看到它了吗? –

回答

2

dijit.byId函数返回一个dijit对象,我不认为它有一个函数作为参数的成员函数onchange

尝试这样做,而不是:

dojo.connect(dijit.byId("patient"), "onChange", function(value) 
{ 
    patientList.url = ".calendar/search-patient?term=" + value; 
    patientList.close(); 
}); 
+0

谢谢。这样我不会收到错误,但我不认为它听取元素的事件(或不覆盖事件),因为我没有得到任何回应(我尝试过使用警报但没有任何回应)。 – sica07

+0

@ sica07这很奇怪。你确定你正在使用'onChange'而不是'onchange'(不正确的大写)?这是一个小提琴:http://jsfiddle.net/D7Xym/ – Frode

+0

onchange是问题所在。愚蠢的我。现在它工作了!非常感谢! – sica07