2013-10-03 114 views
0

当我点击按钮它必须显示对话框,但它不显示。我从dojo文档中找到了这个代码。当我点击按钮时,它没有显示任何东西。这里是我的代码,请帮助我。对话框没有显示在dojo

<script type="text/javascript"> 
dojo.require("dijit.form.Form"); 
dojo.require("dijit.Dialog"); 
dojo.require("dijit.form.Button"); 
dojo.require("dojo.parser"); 
dojo.require("dijit.form.TextBox"); 

</script> 

<body class="claro"> 
<div id="gridDiv"></div> 

<div data-dojo-type="dijit.Dialog" id="formDialog2" 
    title="Filtering Rows" style="display: none"> 
    <form data-dojo-type="dijit.form.Form" id="123"> 
     <script type="dojo/event" data-dojo-event="onSubmit" 
      data-dojo-args="e"> 

       require(["dojo/dom"], function(dom){ 
     var f = dojo.byId("123"); 
     var s = ""; 
      var elem = f.elements[0]; 
      s = elem.value; 
dijit.byId('grid').filterBar(s); 

    }); 
    return false; 

    </script> 
     Search: <input type="text" name="searchtext" value="" 
data-dojo-type="dijit/form/TextBox"> 
     <div class="dijitDialogPaneActionBar"> 
      <button data-dojo-type="dijit.form.Button" type="submit">OK</button> 
      <button data-dojo-type="dijit.form.Button" type="button" 
data-dojo-props="onClick:function(){dijit.byId('formDialog2').hide();}">Cancel</button> 
     </div> 
    </form> 
</div> 

<button id="buttonThree" data-dojo-type="dijit.form.Button" 
    type="button"> 
    Show Filter 
    <script type="dojo/method" data-dojo-event="onClick" 
     data-dojo-args="evt"> 
    dijit.byId("formDialog2").show(); 
</script> 
</button> 

回答

0

检查,以查看是否有

require(["dijit/Dialog",'dijit/form/TextBox','dijit/form/Button']); 

某处添加到头部。当我添加它它工作正常。

http://jsfiddle.net/theinnkeeper/HX4uR/

+0

是的,我需要声明 – sirisha

+1

你有parseonload作为djConfig的一部分。因为在小提琴中看到,您的代码工作。 – tik27

0

看来你的道场没有加载在所有。为了避免解析问题,我总是在调用最新版本的dojo脚本时导入dojo库djConfig="parseOnLoad:true

dojo.require("dijit.form.Form"); 
 
dojo.require("dijit.Dialog"); 
 
dojo.require("dijit.form.Button"); 
 
dojo.require("dojo.parser"); 
 
dojo.require("dijit.form.TextBox");
<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.6.2/dojo/resources/dojo.css" rel="stylesheet" /> 
 
<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.6.2/dijit/themes/claro/claro.css" rel="stylesheet" /> 
 
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/dojo.js" djConfig="parseOnLoad:true"></script> 
 

 
<body class="claro"> 
 
    <div id="gridDiv"></div> 
 

 
    <div data-dojo-type="dijit.Dialog" id="formDialog2" title="Filtering Rows" style="display: none"> 
 
    <form data-dojo-type="dijit.form.Form" id="123"> 
 
     <script type="dojo/event" data-dojo-event="onSubmit" data-dojo-args="e"> 
 

 
     require(["dojo/dom"], function(dom){ var f = dojo.byId("123"); var s = ""; var elem = f.elements[0]; s = elem.value; dijit.byId('grid').filterBar(s); }); return false; 
 

 
     </script> 
 
     Search: 
 
     <input type="text" name="searchtext" value="" data-dojo-type="dijit/form/TextBox"> 
 
     <div class="dijitDialogPaneActionBar"> 
 
     <button data-dojo-type="dijit.form.Button" type="submit">OK</button> 
 
     <button data-dojo-type="dijit.form.Button" type="button" data-dojo-props="onClick:function(){dijit.byId('formDialog2').hide();}">Cancel</button> 
 
     </div> 
 
    </form> 
 
    </div> 
 

 
    <button id="buttonThree" data-dojo-type="dijit.form.Button" type="button"> 
 
    Show Filter 
 
    <script type="dojo/method" data-dojo-event="onClick" data-dojo-args="evt"> 
 
     dijit.byId("formDialog2").show(); 
 
    </script> 
 
    </button> 
 

 

 
</body> 
 

 
</html>