[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: enable function
maximka787
Мужики, помогите, не найду ошибку, что может быть не так?
<script type="text/javascript">

function
active(n){
document.getElementById(n).disabled = false;
}
</script>

<form>
<br><input
type="text" name="var1" id="n1" disabled><a href="" onClick="active(n1);">edit</a>
<br><input
type="text" name="var2" id="n2" disabled><a href="" onClick="active(n2);">edit</a>
<br><input
type="text" name="var3" id="n3" disabled><a href="" onClick="active(n3);">edit</a>
</form>




Спустя 9 минут, 13 секунд (9.02.2011 - 15:54) sergeiss написал(а):
maximka787 - "Ну вы, блин, даёте!" (с) biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif
Как же ты нажмешь кнопку инпут, если он изначально заблокирован???

Спустя 5 минут, 40 секунд (9.02.2011 - 16:00) Snus написал(а):
sergeiss
У него сначала кнопка, а потом ссылка

maximka787

<script type="text/javascript">
$(document).ready(function(){
$('a.act').click(function(){
$(this).prev('input').removeAttr('disabled').focus();
return false;
});
});
</
script>


<form>
<br><input
type="text" name="var1" disabled><a href="#" class="act">edit</a>
<br><input
type="text" name="var2" disabled><a href="#" class="act">edit</a>
<br><input
type="text" name="var3" disabled><a href="#" class="act">edit</a>
</form>

Спустя 7 минут, 4 секунды (9.02.2011 - 16:07) sergeiss написал(а):
Цитата (Snus @ 9.02.2011 - 17:00)
У него сначала кнопка, а потом ссылка

Во, блин... Чё-та я не туда посмотрел...

Snus - вот только ты написал не на чистом JS...

У автора 2 ошибки:
1. Имя кнопки надо указывать в кавычках.
2. Обработчик onclick в такой ситуации должен возвращать false - иначе срабатывает ссылка и происходит переход по ссылке!!!

<br><input type="text" name="var1" id="n1" disabled><a href="" onClick="active('n1'); return false;">edit</a>

Спустя 1 минута, 36 секунд (9.02.2011 - 16:08) Snus написал(а):
sergeiss
Я знаю уже твою нелюбовь к jQuery. Это удобно и я бы советовал автору темы пользоваться им, а не изобретать велосипеды с самопознанием JS.

Спустя 6 минут, 58 секунд (9.02.2011 - 16:15) maximka787 написал(а):
Snus, твой пример не работает у меня почему-то. На счет велосипеда я и сам знаю, что незачем его изобретать, но и пример у меня самого начального уровня, только с функцией проблемы.

sergeiss я заменил код на твой в нижней части, но тоже не работает.

Спустя 1 минута, 4 секунды (9.02.2011 - 16:16) sergeiss написал(а):
Цитата (Snus @ 9.02.2011 - 17:08)
Я знаю уже твою нелюбовь к jQuery. Это удобно и я бы советовал автору темы пользоваться им, а не изобретать велосипеды с самопознанием JS.

А если весь сайт 2-3 страницы, в которых всего 3-4 небольших функции на JS, то тоже надо таскать с собой всю библиотеку???

maximka787 - покажи, что именно ты получил в итоге!

Спустя 1 минута, 16 секунд (9.02.2011 - 16:18) Snus написал(а):
maximka787
Ты сначала библиотеку подключи jQuery библиотека

Спустя 53 секунды (9.02.2011 - 16:19) Snus написал(а):
sergeiss
Да и что? Да хоть 1 страница-визитка. Задержка в пару миллисекунд большого ущерба не нанесут, а вот jQuery облегчит работу.

Спустя 20 секунд (9.02.2011 - 16:19) Michael написал(а):
<script type="text/javascript">

function
active(n){
document.getElementById(n).disabled = false;
return false;

}
</script>

<form>
<br><input
type="text" name="var1" id="n1" disabled><a href="" onClick="active('n1');">edit</a>
<br><input
type="text" name="var2" id="n2" disabled><a href="" onClick="active('n2');">edit</a>
<br><input
type="text" name="var3" id="n3" disabled><a href="" onClick="active('n3');">edit</a>
</form>

Спустя 3 минуты, 11 секунд (9.02.2011 - 16:22) maximka787 написал(а):
Snus - понял что нужно) не дошло сразу.

sergeiss Правильно написал, у меня всего одно место на сайте где надо использовать это. Вот в итоге весь код но он не работает:
<script type="text/javascript">
function
active(n){
document.getElementById(n).disabled = true;
}
</script>

<form>
<br><input
type="text" name="var1" id="n1" disabled><a href="" onClick="active('n1'); return false;">edit</a>
<br><input
type="text" name="var1" id="n1" disabled><a href="" onClick="active('n1'); return false;">edit</a>
<br><input
type="text" name="var1" id="n1" disabled><a href="" onClick="active('n1'); return false;">edit</a>
</form>


Michael - не работает

Спустя 1 минута, 24 секунды (9.02.2011 - 16:23) sergeiss написал(а):
А ты посмотри, сколько у тебя объектов с именем айди n1 получилось smile.gif

Michael - return false должен быть... Либо - return active('n1')

Спустя 4 секунды (9.02.2011 - 16:24) Snus написал(а):
maximka787
disabled = false;

Спустя 2 минуты, 51 секунда (9.02.2011 - 16:26) sergeiss написал(а):
Цитата (Snus @ 9.02.2011 - 17:19)
Да и что? Да хоть 1 страница-визитка...

Это вопрос спорный, для большого холивара smile.gif Давай не будем тут об этом.

Спустя 7 минут, 21 секунда (9.02.2011 - 16:34) Michael написал(а):
в моем примере onClick="return active('n1');" добавь. Вообще ссылкам href="#" задай, уже выше показывали кстати.

Спустя 1 минута, 50 секунд (9.02.2011 - 16:36) maximka787 написал(а):
О заработало, УРА! Всем спасибо.
А скажите, если надо делать обратно disable при нажатии на любом другом элементе или просто вне зоны input
надо использовать:
<input type="text" name="var1" id="n1" disabled>
<a
href="" onClick="active('n1'); return false;" onBlur="deactive('n1'); return false;">edit</a>


и соответственно:
function deactive(n){
document.getElementById(n).disabled = false;
}

Спустя 56 секунд (9.02.2011 - 16:37) maximka787 написал(а):
Ошибся, onBlur="deactive('n1'); return false;" в сам input

Спустя 45 секунд (9.02.2011 - 16:37) Snus написал(а):
maximka787
Я могу тебе ответить ) но на jQuery ) и меня опять заплюют )) поэтому жди пока поклонники чистого JS тебе ответят ))

Спустя 3 минуты, 29 секунд (9.02.2011 - 16:41) Snus написал(а):
maximka787
Для себя на jQuery я бы это организовал так )))

$(document).ready(function(){
$('a.act').click(function(){
$(this).prev('input').removeAttr('disabled').focus()
.
blur(function(){
$(this).attr('disabled', 'true');
})
.
keypress(function(e){
if(e.keyCode == 13){
$(this).attr('disabled', 'true');
alert('ИЗМЕНЕНИЯ ВНЕСЕНЫ :)');
}
}
);
return false;
});
});

Спустя 5 минут, 36 секунд (9.02.2011 - 16:46) maximka787 написал(а):
Snus, благодарю, лучше все таки использовать примеры для "школы") я с jQuery сталкивался только в готовых проектах, где надо было менять информацию, а не писать с нуля. Поэтому и стараюсь использовать только там, где нужно.

Я понял. Не надо деактивировать один элемент. Проще все элементы формы.
Кто знает как их найти?
<input type="text" name="var1" id="n1" onBlur="deactive();" disabled>
<input
type="text" name="var2" id="n2" onBlur="deactive();" disabled>

function deactive(){
for(i=0;i<????;i++){
document.form[0].disabled = true;
}
}


Функция не работает, просто для примера написал, если как-то так можно сделать?

Спустя 22 минуты, 42 секунды (9.02.2011 - 17:09) sergeiss написал(а):
Цитата (Snus @ 9.02.2011 - 17:37)
но на jQuery ) и меня опять заплюют ))

Да зачем же клевать-плевать? smile.gif Если тебе хочется, используй.

maximka787 - вот чё хошь думай, но писать готовый код не буду принципиально smile.gif
Только подскажу: для перебора всех объектов внутри формы используй getElementsByTagName('*'). Со звездочкой - это если все перебрать надо, любого типа. Далее выбирай нужные тебе по типу (или по айди, или по любому другому критерию) и изменяй хоть свойство disabled, хоть что-то другое. Можно сразу перебирать элементы только одного типа... Вариаций много.

Спустя 36 минут, 33 секунды (9.02.2011 - 17:46) maximka787 написал(а):
Цитата (sergeiss @ 9.02.2011 - 14:09)
Можно сразу перебирать элементы только одного типа... Вариаций много.

Посмотрю как это делается, спасибо.

Спустя 7 минут, 40 секунд (9.02.2011 - 17:53) sergeiss написал(а):
maximka787 - Возможно, что вот это http://javascript.ru/tutorial/dom/search тебе поможет smile.gif
Или, более обще, вот это вот http://javascript.ru/search/node/getElementsByTagName


_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.