2015-10-01 134 views
0

我有一個添加到dijit/layout/ContentPane的dijit/form /按鈕。 dijit/layout/ContentPane然後被放置在dijit/form/DropDownButton中。當我點擊dijit/form /按鈕時,它不會第一次觸發。對於這個例子,我只需點擊按鈕生成一個警報框,並將值輸入到ValidationTextBox中。我在其他論壇上看到關於此主題的一些討論,這些論壇建議onMouseDown事件或焦點事件突出顯示第一個onClick事件。什麼是最好的方式來測試這些事件何時加載,或者我只是在代碼中丟失了某些東西?dijit/form/button?謝謝你看看。dijit按鈕不是第一次觸發

dojoConfig = { 
 
    parseOnLoad: true 
 
} 
 

 
require(["dijit/form/DropDownButton", "dijit/MenuItem", "dijit/layout/ContentPane", "dijit/form/ValidationTextBox", "dijit/form/Button"], 
 
    function(DropDownButton, DropDownMenu, ContentPane, ValidationTextBox, Button) { 
 

 
    var parcelsearchCP = new ContentPane({ 
 
     id: 'parcelsearchCP', 
 
     tabindex: 0 
 
    }); 
 

 
    var parcelsearchInput = new ValidationTextBox({ 
 
     title: "Enter Parcel ID", 
 
     name: "parcelvalue", 
 
     id: "parcelsearchInput", 
 
     placeholder: "<enter 8 digits>", 
 
     regExp: "^[0-9]*$" 
 
    }); 
 

 
    var searchBtn = new Button({ 
 
     //iconClass: "mySearchIcon", 
 
     name: "searchme", 
 
     label: "click me" 
 
    }); 
 
    searchBtn.startup(); 
 
    dojo.place("<div>Enter Parcel ID: </div>", parcelsearchCP.containerNode); 
 
    dojo.place(parcelsearchInput.domNode, parcelsearchCP.containerNode); 
 
    dojo.place(searchBtn.domNode, parcelsearchCP.containerNode); 
 

 
    var button = new DropDownButton({ 
 
     label: "hello!", 
 
     name: "programmatic2", 
 
     dropDown: parcelsearchCP, 
 
     id: "progButton" 
 
    }, "dropDownButtonContainer").startup(); 
 

 
    dojo.connect(searchBtn, "onClick", function() { 
 
     var boxentry = dijit.byId("parcelsearchInput"); 
 
     if (boxentry.value !== "" || parcelsearchInput.isValid() === true) { 
 
     alert(boxentry.value); 
 

 
     } else { 
 
     alert("Please enter a valid 8 digit number and re-submit."); 
 
     } 
 

 
    }); 
 

 

 
    });
<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/claro/claro.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script> 
 

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

+1

它顯示了Chrome,FF和IE 11中第一次點擊的警報......您看到了什麼瀏覽器問題?另外,你實際使用的是什麼版本的Dojo?你正在引用1.10的代碼,但在本例中是1.5的樣式... –

+0

嗨,我正在使用Chrome版本45.0.2454.99進行測試,但我需要在FF和IE中使用此功能。此代碼實際上是由第三方供應商提供的Javascript/HTML 5模板的一個子集,其自帶的API基於Dojo 1.10.4構建。我基本上正在嘗試爲現有的應用程序添加一個「小部件」,並與應用程序的現有編碼標準保持一致。我意識到這並不是真的如何實現,這幾乎是Dojo標準的傳統編碼方法。我希望我可以重新開始,但現在不適合我。 – gingerrc4

回答

0

那麼事實證明,所有我需要做的就是改變從「點擊」到「onmousedown事件」的事件,並在按鈕添加一個searchBtn.focus()連接聲明。這似乎是訣竅。謝謝你的時間!

相關問題