Требуется:
Чтобы оба текстбокса (t1, и t2) не выпускали пользователя, пока те не внесут требуемое слово.
Пусть для t1 = "test1"
Пусть для t2 = "test2"
Примечание:
Вроде бы легко, ан нет, уже полдня мучаюсь, а толком ничего и не получилось нормального, 100% работающего, по сему не предлагаю свои варианты дабы не сбить Вас с пути истинного.
Здравствуйте, uzzy, Вы писали:
U>Требуется: U>Чтобы оба текстбокса (t1, и t2) не выпускали пользователя, пока те не внесут требуемое слово. U>Пусть для t1 = "test1" U>Пусть для t2 = "test2"
С точки зрения, скажем так, чистого программирования, решение сей загадки быть должно. Но с точки зрения пользователя, а также программиста, работающего для пользователя (в особенности программистом не являющегося), применение подобных мер вряд-ли можно считать целесообразным (во всяком случае хорошим тоном). Не знаю конкретной постановки задачи, но в подавляющем большинстве случаев применение таких, прямо сказать, драконовских мер выдержит не каждый уважающий себя юзер: (Windows) Alt/F4 или салют тремя пальцами — и прощай, великолепный сайт/программа, навеки веков, аминь (в случае если сей код не связан с предоставленем доступа к секретным даннным, да и то можно реализовать иначе)!
Более корректно, это даже не IMHO, сообщение об ошибке и блокирование клавиши OK. Но клавишу CANCEL — оставь для меня, любимого. Иначе не пойду на твой cool-site .
Здравствуйте, Xumpopena, Вы писали:
X>Здравствуйте, uzzy, Вы писали:
U>>Требуется: U>>Чтобы оба текстбокса (t1, и t2) не выпускали пользователя, пока те не внесут требуемое слово. U>>Пусть для t1 = "test1" U>>Пусть для t2 = "test2"
X> С точки зрения, скажем так, чистого программирования, решение сей загадки быть должно. Но с точки зрения пользователя, а также программиста, работающего для пользователя (в особенности программистом не являющегося), применение подобных мер вряд-ли можно считать целесообразным (во всяком случае хорошим тоном). Не знаю конкретной постановки задачи, но в подавляющем большинстве случаев применение таких, прямо сказать, драконовских мер выдержит не каждый уважающий себя юзер: (Windows) Alt/F4 или салют тремя пальцами — и прощай, великолепный сайт/программа, навеки веков, аминь (в случае если сей код не связан с предоставленем доступа к секретным даннным, да и то можно реализовать иначе)!
X> Более корректно, это даже не IMHO, сообщение об ошибке и блокирование клавиши OK. Но клавишу CANCEL — оставь для меня, любимого. Иначе не пойду на твой cool-site .
Насрать на этот дурацкий базар. Уззи придумал классную головоломку — не ломай кайф философией
U>Требуется: U>Чтобы оба текстбокса (t1, и t2) не выпускали пользователя, пока те не внесут требуемое слово. U>Пусть для t1 = "test1" U>Пусть для t2 = "test2"
U>Примечание: U>Вроде бы легко, ан нет, уже полдня мучаюсь, а толком ничего и не получилось нормального, 100% работающего, по сему не предлагаю свои варианты дабы не сбить Вас с пути истинного.
Для частного случая, который ты привел даю свое решение:
Здравствуйте, ЖуК, Вы писали: ЖуК>Насрать на этот дурацкий базар. Уззи придумал классную головоломку — не ломай кайф философией
ЖуК>З.Ы. Если обидел — извини
Если только головоломка — то ничуть не обидел. Более того, попробую присоединиться ; а если это — стиль, не взыщи .
Здравствуйте, ЖуК, Вы писали:
ЖуК>Для общего случая с произволным количеством элементов — в процессе
В принципе идея (точнее решение) понятно, до общего случая уже доведу сам, правда если все еще интересно, приводи, мало ли кому понадобиться.
Спасибо огромное.
ЖуК>З.Ы. ИЕ 6
З.Ы. Под рукой пока 5 и 5.5 не имеется, но в принципе должно работать. Ничего сверхестественного вроде бы нету.
З.З.Ы. Странно обоим поставил 3 (тебе и анонимусу), причем тебе первому, а анонимусу больше досталось .
Здравствуйте, Xumpopena, Вы писали:
X>Здравствуйте, ЖуК, Вы писали: ЖуК>>Насрать на этот дурацкий базар. Уззи придумал классную головоломку — не ломай кайф философией
ЖуК>>З.Ы. Если обидел — извини
X>Если только головоломка — то ничуть не обидел. Более того, попробую присоединиться ; а если это — стиль, не взыщи .
Это не стиль, на моем сайте ты этого не увидишь, так что спи спокойно .
Здравствуйте, uzzy, Вы писали:
U>Здравствуйте, anonymous, Вы писали:
U>Спасибо огромное, но решение Жука мне нравится больше. По крайней мере меньше моргания.
так за 10 мин. написано было... ) что в голову пришло...
Код, указанный постом ранее, представлен всеобщей публике для тестирования, поскольку сейчас не имеется под руками IE 5 и 5.5, хотелось бы услышать результаты.
Здравствуйте, uzzy, Вы писали:
U>В принципе идея (точнее решение) понятно, до общего случая уже доведу сам, правда если все еще интересно, приводи, мало ли кому понадобиться. U>Спасибо огромное.
Конечно интересно! (Тем более, что я обещал) Вот решение
Итого. Создаем на странице сколько хотим элементов <input type=text> При этом, я дабы долго не заморачиваться немного схитрил и задаю нужные значения в аттрибуте VALUE . Но это наверное не очень гут... хотя если повесить скрипт на онлоад... или скажем даже так — показывать всю страницу полностью на онлоад, то в принципе будет ничего... ну а все остальное уже по ходу кода...
<html>
<body>
<table>
<tr><td>Test1 :</td><td>
<input type="text" value="blablabla">
</td></tr>
<tr><td>Test2 :</td><td>
<input type="text" value="blabla">
</td></tr>
<tr><td>Test3 :</td><td>
<input type="text" value="bla">
</td></tr>
<tr><td>Test4 :</td><td>
<input type="text" value="">
</td></tr>
</table>
<div id="dd"></div>
<script language="JavaScript" type="text/javascript">
var dAll = document.all;
var texts = Array();
var cnt = 0;
// Обходим все элементы страницы и находим все текстовые поляfor (var i = 0; i < dAll.length; i++) {
if( dAll[i].type == 'text') {
texts[cnt++] = i; // Создаем массив уникальных идентификаторов текстовых полей
dAll[i].uniqueId = i; // Определяем уникальный идентификатор у каждого поля
dAll[i].neededValue = dAll[i].value; // Определяем neededValue у поля, как заданный атрибут value в тэге поля :) - это маленькое жульничество.
// Скорее всего из-за него придется весь этот скрипт вешать на OnLoad документа
dAll[i].value = ""; // Сбрасываем value у поля
}
}
document.focusedElement = null;
// пишем обработчики событий OnFocus и OnBlur для всех текстовых полейfor (var i = 0; i < texts.length; i++) {
// строим обработчики OnFocus
dAll[texts[i]].onfocus = function() {
// если фокус не находится ни в одном поле говорим, что фокус у данного поля :)if (document.focusedElement == null) {
document.focusedElement = this.uniqueId;
}
// если фокус уже находится у другого поля - покидаем данноеif (document.focusedElement != this.uniqueId) {
this.blur();
}
}
// Строим обработчики OnBlur
dAll[texts[i]].onblur = function() {
// если фокус уже находится у другого поля - покидаем данноеif( document.focusedElement != this.uniqueId) {
this.blur();
} else {
// иначе смотрим введено ли нужное значение в полеif (this.value == this.neededValue) {
this.blur(); // да введено, покидаем поле
document.focusedElement = null; // говорим, что фокуса ни у кого нет
} else {
this.focus(); // иначе возвращаем фокус "на место"
}
}
}
}
</script>
</body>
</html>
U>З.З.Ы. Странно обоим поставил 3 (тебе и анонимусу), причем тебе первому, а анонимусу больше досталось .
Это патамучта так работает система оценок. Просто ты, видать, уже мне ставил макс. оценку в этом месяце... Это что бы не накручивали... так пишут в разделе, где описано начисление оценок — мошь почитать
[skipped]
Как подробно-то, книжку по javascript-ам не хочешь написать .
U>>З.З.Ы. Странно обоим поставил 3 (тебе и анонимусу), причем тебе первому, а анонимусу больше досталось .
ЖуК>Это патамучта так работает система оценок. Просто ты, видать, уже мне ставил макс. оценку в этом месяце... Это что бы не накручивали... так пишут в разделе, где описано начисление оценок — мошь почитать
Про систему оценок знаком, но видать за был про "максимальную оценку в месяц".
Здравствуйте, ЖуК, Вы писали:
ЖуК>Конечно интересно! (Тем более, что я обещал) Вот решение
ЖуК>Итого. Создаем на странице сколько хотим элементов <input type=text> При этом, я дабы долго не заморачиваться немного схитрил и задаю нужные значения в аттрибуте VALUE . Но это наверное не очень гут... хотя если повесить скрипт на онлоад... или скажем даже так — показывать всю страницу полностью на онлоад, то в принципе будет ничего... ну а все остальное уже по ходу кода...
а можно было бы какой-нить свой атрибут приделать, например needeedValue, тогда и value чистить не надо...
Здравствуйте, marx paul, Вы писали:
MP>а можно было бы какой-нить свой атрибут приделать, например needeedValue, тогда и value чистить не надо...
Ну вот и не расстраивайся, что не успел — теперь ты поделись опытом: как прикрутить аттрибут к тэгу? Хотя если знаешь — то уже начни новую тему. Я вот роюсь в инфах всяких и никак не выходит што-то. Одно решение придумал но как и uzzyб не хочу пока говорить ...
Здравствуйте, ЖуК, Вы писали:
ЖуК>Здравствуйте, marx paul, Вы писали:
MP>>а можно было бы какой-нить свой атрибут приделать, например needeedValue, тогда и value чистить не надо...
ЖуК>Ну вот и не расстраивайся, что не успел — теперь ты поделись опытом: как прикрутить аттрибут к тэгу? Хотя если знаешь — то уже начни новую тему. Я вот роюсь в инфах всяких и никак не выходит што-то. Одно решение придумал но как и uzzyб не хочу пока говорить ...
Ой, ганю... Позор...
Вся моя ошибка оказалась вот в чем
Здравствуйте, ЖуК, Вы писали:
ЖуК>Здравствуйте, marx paul, Вы писали:
MP>>а можно было бы какой-нить свой атрибут приделать, например needeedValue, тогда и value чистить не надо...
ЖуК>Ну вот и не расстраивайся, что не успел — теперь ты поделись опытом: как прикрутить аттрибут к тэгу? Хотя если знаешь — то уже начни новую тему. Я вот роюсь в инфах всяких и никак не выходит што-то. Одно решение придумал но как и uzzyб не хочу пока говорить ...