У меня есть кнопка dijit/form /, которая добавляется в dijit/layout/ContentPane. Затем 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>
Он показывает предупреждение при первом нажатии в Chrome, FF и IE 11 для меня ... В каком браузере вы видите проблему? Кроме того, какую версию Dojo вы используете на самом деле? Вы ссылаетесь на код 1.10, но стили 1.5 в этом примере ... –
Привет, Кен, я использую версию Chrome 45.0.2454.99 для тестирования, но мне нужно будет иметь эту функциональность и в FF и IE. Этот код на самом деле является подмножеством шаблона Javascript/HTML 5, предоставляемого сторонним поставщиком со своим собственным api, построенным на Dojo 1.10.4. Я в основном пытаюсь добавить «виджет» к существующему приложению и остаюсь в соответствии с существующими стандартами кодирования приложения. Я понимаю, что на самом деле это не так, как это делается больше, и это в значительной степени основополагающая методология кодирования по стандартам Dojo. Хотелось бы, чтобы я начал, но это не для меня на данный момент. – gingerrc4