Изменение псевдокласса DISABLED при активации события
Похожие темы имеются, но они мне не помогли :agree:
Нужно, чтобы при активации флажка (checkbox) кнопка (submit) становилась активной, а при деактивации - неактивной :) Данный код отображает кнопку при активации флажка, но без обратного эффекта: <form method="get" action="#"> <input type="checkbox" name="checkbox" onfocus="this.form.submit.disabled=0" /> <input type="submit" name="submit" value="Button" disabled /> </form> Так же получилось условие в событие (onChange) для флажка:
if (this.form.checkbox.checked == 1) {
this.form.submit.disabled = 0
} else {
this.form.submit.disabled = 1
}
aka:
if (document.getElementById('checkbox').checked == 1) {
document.getElementById('submit').disabled = 0
} else {
document.getElementById('submit').disabled = 1
}
На локальном компьютере работает отлично, а на сайте почему-то код сокращается до такого варианта:
if(document.getElementById('checkbox').checked==1)else
Возможно ошибка тупо в синтаксисе? :blink: Или может нужно использовать другое событие? :-? |
Цитата:
<script>
function Go(Type) {
document.getElementById('test').disabled=!Type;
}
</script>
<form method="get" action="#">
<input type="checkbox" name="checkbox" onclick="Go(this.checked)" />
<input id='test' type="submit" name="submit" value="Button" disabled />
</form>
|
Цитата:
А всё, оказалось, из-за того, что тупой движок сайта ставил внутри скриптов тег <br/>... Зато отлично сработал такой вариант (исходя из Вашего): <form method="get" action="#"> <input type="checkbox" name="checkbox" onmousedown="this.form.submit.disabled=this.checked" /> <input type="submit" name="submit" value="Button" disabled /> </form> Так что, спасибо :yes: |
Electron, мой вариант не зависит от <br />... :D И не завист от того, где он установлен.
|
Цитата:
Сейчас та же проблема, не работает из-за того, что движок удаляет часть скрипта, нужно чтобы так же код был без условий :-E То есть выглядеть это будет так:
<script>
function send() {
if (this.form.text.value=='') {
alert('Укажите номер Вашего счета!'); return false;
} else {
alert('Данные отправлены!');
}
}
</script>
<form method="get" action="#">
Укажите номер Вашего счета
<input type="text" name="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>
Ничего нового, на локальном компьютере работает, а в интернете - нет :write: |
Цитата:
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function send() {
if (this.form.text.value=='') {
alert('Укажите номер Вашего счета!'); return false;
} else {
alert('Данные отправлены!');
}
}
</script>
</head>
<body>
<form method="get" action="#">
Укажите номер Вашего счета
<input type="text" name="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>
</body>
</html>
Таки работает и в инете. :) Смотрю в Опере... |
Цитата:
Такая проблема решается выносом скрипта в отдельный JS-файл, но в таком случае не работает "return false"... :cray: |
Electron, ты описываешь какие-то страсти-мордасти...
|
такая проблема решается в первую очередь выключением минификатора скриптов в движке.
|
Цитата:
|
Почему?
|
Цитата:
Слушайте, что-то "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: |
Цитата:
Да сколько можно. У форм есть замечательный обработчик 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>
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
И заключающий, надеюсь, вопрос: как будет выглядеть регулярное выражение для цифр от 0 до 9, и для символов от 2 до 6? :)
Написал такое: /[0-9]{2,6}/ Но оно допускает это - "777ааа", то есть мне нужно ещё как-то запретить все символы, кроме цифр? Заранее спасибо. |
Цитата:
дайте примеры строк, которым оно будет соответствовать |
Цитата:
Для этого и нужно регулярное выражение, которое будет вноситься в переменную:
var reg_text = /[0-9]{2,6}/;
После чего идёт условие на проверку... :-? |
Сам, кажется, разобрался: /^\d{2,6}$/
|
Electron, вообще, можно ловить нажатия клавиш (onkeydown, onkeypress, onkeyup), и проверить, было ли введённое пользователем цифрами. Правда, учтите при этом, что есть ещё служебные клавиши - такие как Ctrl, Shift, Home, End, стрелочки, в конце концов.
Ну и в конце проверка регулярками всё равно не помешает. |
Разве вариант с регулярными выражениями не проще? ;)
Блин, снова этот дебильный движок сайта... из этого: /^\d{2,6}$/ делает это: /^\d$/ Он преобразует некоторые символы в спецсимволы, и естественно всё не работает... Можно ли в JS избежать данных спецсимволов? :write: |
Хм. Вы не можете отключить обработку некоторых файлов? Не поверю, что невозможно обойтись без обфускации. Должен быть какой-то вариант обхода.
|
Вроде нет, есть только выполняющий обратное действие BB-код...
В общем вынес JS-код в отдельный файл, вроде пока работает :) Надеюсь с этим всё, всем, кто помогал - спасибо :dance: |
Цитата:
|
Цитата:
|
я могу(нет, не могу) позавтракать в туалете - а что, всё равно скоро туда же идти ?
|
Блииин, новая проблема появилась... =/
Возможно ли на JS сделать такое: пользователь выбирает определённый радиобокс, затем нажимает на кнопку (обработка формы) и в зависимости от этого идёт автоматическое скачивание разных текстовых файлов. Это реально сделать средствами JavaScript? Существует ли вообще такая команда, или можно как-нибудь поиграть с "window.location.href"? Может у кого ссылка имеется на статью, заранее спасибо ;) (Что за бред?) |
Всё получилось тупо открытием файла в новом окне:
window.open('/document.doc')
Всё остальное сделал на PHP (обработку формы, извлечение переменных и отправку письма)... Как в условии записать, что они должны быть выполнены оба? То есть так форма обрабатывается при удовлетворении одному из условий: if ((reg_text.exec(text) == null) && (reg_mail.exec(mail) == null)) А нужно чтобы форма обрабатывалась только при удовлетворении обоих условий :-? |
ЩИТО?
alert(!!( 1 && 0 )); |
Я ж туплю, мне нужно использовать логическое ИЛИ (||), а не логическое И (&&) :D
|
| Часовой пояс GMT +3, время: 12:46. |