Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменение псевдокласса DISABLED при активации события (https://javascript.ru/forum/misc/22854-izmenenie-psevdoklassa-disabled-pri-aktivacii-sobytiya.html)

trikadin 04.11.2011 14:06

Почему?

Electron 04.11.2011 14:22

Цитата:

Сообщение от trikadin (Сообщение 134443)
Почему?

Ну потому, что все имеющиеся страницы созданы с учётом этих настроек, и при отключении данной функции все страницы, по идее, исказятся :)

Слушайте, что-то "return false" вообще перестал работать:
<script type="text/javascript">
function send() {
	if (document.getElementById('text').value == '') {
		alert('Укажите номер Вашего счета!'); return false
	} else {
		alert('Данные отправлены!')
	}
}
</script>
<form method="get" class="form" name="form" action="#">
	Укажите номер Вашего счета
	<input type="text" name="text" id="text" size="10" />
	<br />
	Я принимаю условия соглашения
	<input type="checkbox" name="checkbox" onmousedown="this.form.submit.disabled=this.checked" />
	<input type="submit" name="submit" value="Скачать договор" onclick="send()" disabled />
</form>

Форма обрабатывается в любом случае, а мне нужно чтобы если "text" не заполнен, выдавалось сообщение и обработка прекращалась, для чего там и стоит "return false" что не так? :blink:

trikadin 04.11.2011 14:28

Цитата:

Сообщение от Electron
Ну потому, что все имеющиеся страницы созданы с учётом этих настроек, и при отключении данной функции все страницы, по идее, исказятся

А проверить не?

Да сколько можно. У форм есть замечательный обработчик onsubmit:
<script type="text/javascript">
function send() {
    if (document.getElementById('text').value == '') {
        alert('Укажите номер Вашего счета!'); return false;
    } else { // Вот здесь if зачем был?
        alert('Данные отправлены!')
    }
}
</script>
<form method="get" class="form" name="form" action="" onsubmit="return send()">
    Укажите номер Вашего счета
    <input type="text" name="text" id="text" size="10" />
    <br />
    Я принимаю условия соглашения
    <input type="checkbox" name="checkbox" onmousedown="this.form.submit.disabled=this.checked" />
    <input type="submit" name="submit" value="Скачать договор" disabled />
</form>

Electron 04.11.2011 14:43

Цитата:

Сообщение от trikadin (Сообщение 134449)
А проверить не?

А проверить - не! Сайт не мой и если всё полетит, я потом за всю жизнь не расплачусь :nono:

Цитата:

Сообщение от trikadin (Сообщение 134449)
Да сколько можно. У форм есть замечательный обработчик onsubmit:

Что значит сколько можно? Я от Вас только что узнал о его существование, загуглил, и вправду полезная штука, всё работает, даже движок не вякнул! Спасибо :)

trikadin 04.11.2011 14:56

Цитата:

Сообщение от Electron
Что значит сколько можно? Я от Вас только что узнал о его существование

Вот-вот. Неуловимый обработчик - всем нужно отдельно написать, что он есть, и что не нужно обработчик на onclick кнопки отправки ставить.

ksa 04.11.2011 17:41

Цитата:

Сообщение от Electron
Я от Вас только что узнал о его существование, загуглил, и вправду полезная штука, всё работает, даже движок не вякнул!

Какое неуловимое это событие onsubmit! :D Ну никак про него не могут узнать...

Electron 04.11.2011 18:35

И заключающий, надеюсь, вопрос: как будет выглядеть регулярное выражение для цифр от 0 до 9, и для символов от 2 до 6? :)
Написал такое:
/[0-9]{2,6}/
Но оно допускает это - "777ааа", то есть мне нужно ещё как-то запретить все символы, кроме цифр? Заранее спасибо.

melky 04.11.2011 19:10

Цитата:

Сообщение от Electron (Сообщение 134497)
как будет выглядеть регулярное выражение для цифр от 0 до 9, и для символов от 2 до 6?

што???

дайте примеры строк, которым оно будет соответствовать

Electron 07.11.2011 10:16

Цитата:

Сообщение от melky (Сообщение 134504)
што???

дайте примеры строк, которым оно будет соответствовать

В смысле? Будет текстовый input, в него пользователь должен будет ввести набор цифр, после чего проверка, то есть будет выдаваться ошибка в случае, если пользователь введёт либо буквы, либо символы, либо ничего, а срабатывать форма будет в случае, если в поле будет только от 2 до 6 цифр :)

Для этого и нужно регулярное выражение, которое будет вноситься в переменную:
var reg_text = /[0-9]{2,6}/;

После чего идёт условие на проверку... :-?

Electron 07.11.2011 12:42

Сам, кажется, разобрался: /^\d{2,6}$/


Часовой пояс GMT +3, время: 13:02.