Активная\Не активная кнопка
Есть два элемента, куда вводится заголовок (input) и текст (textarea). Сначала они пусты, поэтому submit - disabled.
Нужно сделать так, чтобы когда эти !оба! поля были заполнены (т.е. не были пусты - имели хотя бы по одному символу), то disabled с submit убирался бы. Но если !хотя бы одно! из этих полей опять становится пустым (ну, т.е. пользователь стирает информацию в нём), то submit снова становится disabled. Написал вот такое: var title = $('input[name="title"]'); var content = $('textarea[name="content"]'); var submit = $('.editor :submit'); $('input[name="title"], textarea[name="content"]').keypress( function() { if (title.val()!='' && content.val()!='') { submit.removeAttr('disabled'); } if (title.val()=='' || content.val()=='') { submit.attr({disabled: 'disabled'}); } }); Но этот код выполняет только первую часть: когда оба поля заполняются, disabled с submit снимается. А вот если очистить одно поля или даже оба, то disabled на submit не ставится. Что не так? |
Проверяйте по keyup вместо keypress.
|
Как вариант, без использования disabled
<style> .invalidate {color:red;} .validate {color: green;} </style> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <p>Введите корректные данные</p> <form action="#"> <input type="text" /> <input type="submit" /> </form> <div></div> <script> $("form").submit(function() { if (/\d+/.test($("input:first").val())) { $("div").text("Правильно...").addClass('validate').show(); return true; } $("div").text("Неправильно: только цифры").removeClass('validate').addClass('invalidate').show().fadeOut(1000); return false; }); </script> |
Уважаемые пожалуйста покажите как этот скрипт будет выглядеть на JS, а не на JQ.
JQ вообще не понимаю. Или такое затухание не возможно сделать на JS ? |
Jq сделано на js, соответственно всё что сделано на jq - сделано на js.
Открываешь код jq и смотришь как там сделано fadeOut. |
Цитата:
Открыл я линк http://code.jquery.com/jquery-latest.min.js И fadeOut там такой: fadeOut: { opacity: "hide" } Или где смотреть то нужно :) ? |
Ну во-первых: http://code.jquery.com/jquery-latest.js
Во вторых, надо разобрать весь код и выяснить зависимости, что куда идёт и что делает. Или же просто погуглить, ключевые слова "javascript fade in out". В любом случае, если понимаете, что такой вопрос мог задаваться до вас(Чтобы это понять надо лишь слегка пораскинуть мозгами.) - используйте гугл. В принципе даже если думаете что ваш вопрос точно уникален - всё равно попробуйте погуглить, ибо всё равно остаётся шанс. Спрашивать же такие банальности на форумах моветон. Да и ответчать на такие вопросы - скука, а потому ответа вы можете недождаться вообще. |
|
Нашел вариант но с рисунком, с текстом такое же не получается:
<div id="imgId">Test</div> Подскажите плиз как переделать под текст ? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Анимация: Fade Id - Fade Out</title> <script type="text/javascript"> //<![CDATA[ var fade = { // Namespace ids : {}, step : 0.05, delay : 20, // ms timer : null, setOpacity : function(elem, nOpacity) { if (typeof elem == 'string') elem = document.getElementById(elem); var props = ['MozOpacity', 'KhtmlOpacity', 'opacity']; for (var i in props) { if (typeof elem.style[props[i]] == 'string') { elem.style[props[i]] = nOpacity; return; } } // IE 6+ try { nOpacity = 100 * parseFloat(nOpacity); if ((oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha)) oAlpha.opacity = nOpacity; else elem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+");"; } catch (e) { // IE <= 5.5 OR Opera < 9 OR another browser. Do nothing } }, _out : function(id, from, to, callback) { from -= this.step; from = from <= to ? to : from; if (this.doit(id, from, to, callback)) this.timer = setTimeout("fade._out('"+id+"', "+from+", "+to+", '"+(callback ? callback : '')+"')", this.delay); }, _in : function(id, from, to, callback) { from += this.step; from = from >= to ? to : from; if (this.doit(id, from, to, callback)) this.timer = setTimeout("fade._in('"+id+"', "+from+", "+to+", '"+(callback ? callback : '')+"')", this.delay); }, doit : function(id, from, to, callback) { this.setOpacity(id, from); clearTimeout(this.timer); if (from == to) { if (callback) eval(callback+'()'); } else return true; } } // Колбэки function stopHide() {//Вернуть лого фасткодера var button_in = document.getElementById('button_in'); button_in.onclick = function() { fade._in('imgId', 0, 1, 'showHide'); } } function showHide() {//Вернуть лого фасткодера var button_out = document.getElementById('button_out'); button_out.onclick = function() { fade._out('imgId', 1, 0, 'stopHide'); } } //]]> </script> </head> <body> <h2>Нажмите на кнопку</h2> <p><img id="imgId" src="http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/JavaScript-logo.png/200px-JavaScript-logo.png" width="134" height="68" alt="" /></p> <p><input id="button_out" type="button" value="Убрать лого фасткодера" onclick="fade._out('imgId', 1, 0, 'stopHide');" /></p> <p><input id="button_in" type="button" value="Вернуть лого фасткодера" onclick="fade._in('imgId', 0, 1, 'showHide');" /></p> </body> </html> |
|
Часовой пояс GMT +3, время: 01:14. |