2012-02-15 2 views
0

Использование Dojo 1.7, мои виджеты ValidationTextBox или NumberTextBox не содержат фокуса.Dojo ValidationTextBoxes blur focus ... on focus

<input name="mm" id="mm" data-dojo-type="dijit.form.TextBox" data-dojo-props="placeholder:'Month', required:true" /> 
<input name="dd" id="dd" data-dojo-type="dijit.form.NumberTextBox" data-dojo-props="size:2,placeholder:'Day',required:true" /> 
<input name="yy" id="yy" data-dojo-type="dijit.form.TextBox" data-dojo-props="size:4,placeholder:'Year',required:true" /> 

Если значение считается недействительным, подсказка показывает, говорит «неверный» сообщение, но когда я нажимаю на текстовое поле, чтобы изменить или добавить в правильное значение, текстовое поле теряет фокус, и в этом случае его фокус отправляется обратно в первое текстовое поле. Раньше у меня была эта проблема, и я почти отказался от части валидации, но это кажется глупой проблемой. Все поиски заканчиваются разочарованием, как и вся документация Доджо.

Это последние сборки Chrome, FF и Safari, которые говорят мне, что это не проблема браузера.

+1

Вы не можете использовать DateTextBox? В противном случае, ваше первое поле действительно? Предположим, что это не так, по умолчанию у него есть фокус, вы нажимаете на секунду, что заставляет сначала проверять onBlur, затем запускает недопустимое состояние, а затем возвращает фокус на первый текстовый блок, который, в свою очередь, запускает проверку во втором текстовом поле и т. Д. Фокус может быть сложным, как вы управляете ими? Как вы подтверждаете свои поля? – PEM

+0

Предположим, что я мог бы использовать DateTextBox, но раньше у меня была эта проблема с ValidationTextBox, и я подумал, что я все равно спрошу. Да, это похоже на лучшее объяснение. В настоящее время, проверка обрабатывается: btnSubmit.onClick = функция() { если (form.validate()) { \t form.submit() }} Вы можете увидеть для себя: HTTP: //calgamingleague.com/ – Phix

ответ

1

Наконец-то я могу найти его.

From your website Ваш </label> является основным.

Первоначально ваш </label> это оставаться рядом с <input ....dojo.... />

Вы должны переместить </label> пребывания перед тем <input ....dojo.... />

как это

<label><span>City of Residence</span></label> 
<input id="local" name="local" data-dojo-type="dijit.form.TextBox" /> 

<label class="reqd"><span>Birthday</span></label> 
<input name="mm" id="mm" data-dojo-type="dijit.form.TextBox" data-dojo-props="placeholder:'Month', required:true" /> 

Спасибо.

+0

Нет, спасибо! Наверное, я немного ленив на разметке, чтобы упростить стилизацию. – Phix

+0

Мне было приятно, сэр. – OammieR