Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Disable/Enable

81K
12 февраля 2013 года
ICEBERG665
21 / / 05.02.2013
Через JS присваиваю radio.disable="disabled"
Можно как то другим действием отменить "disabled"? Ведь "Enable" не существует?
Не уже ли только через $(#id).html('<input>') можно это сделать?
81K
12 февраля 2013 года
ICEBERG665
21 / / 05.02.2013
Та же проблема с CheckBox и checked... Реализовал через .html .... Но как не красиво и много кода...

Жду ваших предложений....
8
12 февраля 2013 года
mfender
3.5K / / 15.06.2005
У disabled есть два состояния - true и false
81K
12 февраля 2013 года
ICEBERG665
21 / / 05.02.2013
Цитата: mfender
У disabled есть два состояния - true и false



ни $('#id').disabled="true" , ни $('#id').disabled="false", ни $('#id').checked="true" не работают. ошибок JS тоже не выдает.

так что я в печали... фатал мозг офф!!!

8
12 февраля 2013 года
mfender
3.5K / / 15.06.2005
true и false - это не строки, а enumeration, их не надо в кавычках.
81K
13 февраля 2013 года
ICEBERG665
21 / / 05.02.2013
Цитата: mfender
true и false - это не строки, а enumeration, их не надо в кавычках.



без кавычек тоже не работает!

277
13 февраля 2013 года
arrjj
1.7K / / 26.01.2011
Попробуй:
 
Код:
alert($('#id').disabled);
$('#id').disabled=!$('#id').disabled;
alert($('#id').disabled);
Цитата: mfender
true и false - это не строки, а enumeration


да лаааадно

81K
13 февраля 2013 года
ICEBERG665
21 / / 05.02.2013
Цитата: arrjj
Попробуй:
 
Код:
alert($('#id').disabled);
$('#id').disabled=!$('#id').disabled;
alert($('#id').disabled);
Цитата: mfender
true и false - это не строки, а enumeration


да лаааадно



оба сообщения undefined... так что что то тут нечисто!!!

8
13 февраля 2013 года
mfender
3.5K / / 15.06.2005
Тут или шашечки, или ехать. $('#id') - это не объект HTMLElement, это объект jQuery (наверное?) Разумеется у него нет disabled. Чтобы достучаться до disabled, нужно искать аттрибут:
 
Код:
$('#id').attr('disabled', true);
Например:

Код:
<body>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
    (function(){
        $('body').empty();

        for(var i=1; i<10; i++){
            var iid = '_chb_'+i;
            $('<input>')
                .attr('type', 'checkbox')
                .attr('id', iid)
                .appendTo('body');
            $('<label>')
                .attr('for', iid)
                .text('Checkbox ' + iid)
                .appendTo('body');
            $('<br>').appendTo('body');
        }
       
        $('input[id^=_chb_]').attr('disabled', true);
    })();  
</script>
</body>
8
13 февраля 2013 года
mfender
3.5K / / 15.06.2005
Цитата: arrjj

Цитата: mfender
true и false - это не строки, а enumeration


да лаааадно



Ога, совершенно точно. Вот сравни как выглядит значение disabled, и как выглядит значение id, и где есть кавычки, и где их нет.

277
13 февраля 2013 года
arrjj
1.7K / / 26.01.2011
Код:
<body>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
function onCbChange()
{
$('#tb').prop('disabled',$('#cb').prop('checked'));
$('#lb').text($('#tb').prop('disabled'));
}
            $('<input>')
                .attr('type', 'textbox')
                .attr('id', 'tb')
                .appendTo('body');
            $('<input>')
                .attr('type', 'checkbox')
                .attr('id', 'cb')
        .change(onCbChange)
                .appendTo('body');
            $('<label>')
        .attr('id', 'lb')
                .text($('#tb').prop('disabled'))
                .appendTo('body');
            $('<br>').appendTo('body');
</script>
</body>
277
13 февраля 2013 года
arrjj
1.7K / / 26.01.2011
Цитата: mfender

Ога, совершенно точно. Вот сравни как выглядит значение disabled, и как выглядит значение id, и где есть кавычки, и где их нет.


Исходя из твоей логики числа тоже enumeration?

8
13 февраля 2013 года
mfender
3.5K / / 15.06.2005
Цитата: arrjj
Цитата: mfender

Ога, совершенно точно. Вот сравни как выглядит значение disabled, и как выглядит значение id, и где есть кавычки, и где их нет.


Исходя из твоей логики числа тоже enumeration?


Исходя из моей логики, есть enum и set, которые значения строками не являются.
Например, вот такой тип TMsgType = (mtError, mtWarning, mtNotice, mtSuccess);
Если я начну писать 'mtError', это будет именно строка, а mtError - это enum-значение TMsgType, фактически TMsgType(0), если бы можно было так написать.
Boolean - это тоже enum, в чём легко убедиться глянув в System.pas

277
13 февраля 2013 года
arrjj
1.7K / / 26.01.2011
Цитата: mfender

Исходя из моей логики, есть enum и set, которые значения строками не являются.
Например, вот такой тип TMsgType = (mtError, mtWarning, mtNotice, mtSuccess);
Если я начну писать 'mtError', это будет именно строка, а mtError - это enum-значение TMsgType, фактически TMsgType(0), если бы можно было так написать.
Boolean - это тоже enum, в чём легко убедиться глянув в System.pas


ага, а Int там небось

 
Код:
type Int set of '-2147483647' ...  '2147483647';
?

Ну это так поржать)) Делфи меня доставляет.

Ну а вообще в отличии от делфи в javascript Boolean это встроенный тип данных, а true и false встроенные литералы.
81K
13 февраля 2013 года
ICEBERG665
21 / / 05.02.2013
Осталась одна проблема по этой же теме!

использую JQ-UI для лучшей визуализации, у меня применимо radio и checkbox, с radio разобрался все работает, а вот checkbox ни в какую не хочет менять картинку, то есть после выбора checkbox он помечается как выделенный, при нажатии на другую кнопку должно происходить сбрасывание checkbox на checked=false. Программно это происходит, а вот визуализация остается как у выделенного, после 1 клика по checkbox он как бы заново перевыделяется и только после 2 клика помечается как не выделенный. Как исправить ошибку визуализации?
8
13 февраля 2013 года
mfender
3.5K / / 15.06.2005
Тут без кода не понять. Чекбокс стандартный, или UI-ный?
81K
13 февраля 2013 года
ICEBERG665
21 / / 05.02.2013
Цитата: mfender
Тут без кода не понять. Чекбокс стандартный, или UI-ный?




Код:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<script>
    $(function() {
    $( "#id" ).buttonset()
    });
    $( "#button" ).click(function() {$("#id").attr("checked", false)});
</script>

<button href="#" id="button">Кнопка с текстом</button>
<input type="checkbox" id="id" ><label for="id">Имя</label>
277
13 февраля 2013 года
arrjj
1.7K / / 26.01.2011
Цитата: ICEBERG665
Цитата: mfender
Тут без кода не понять. Чекбокс стандартный, или UI-ный?




Код:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<script>
    $(function() {
    $( "#id" ).buttonset()
    });
    $( "#button" ).click(function() {$("#id").attr("checked", false)});
</script>

<button href="#" id="button">Кнопка с текстом</button>
<input type="checkbox" id="id" ><label for="id">Имя</label>



На момент выполнения скрипта кнопки еще не существует. Так работает:

Код:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<button href="#" id="button">Кнопка с текстом</button>
<input type="checkbox" id="id" ><label for="id">Имя</label>
<script>
    $(function() {
    $( "#id" ).buttonset()
    });
    $( "#button" ).click(function() {$("#id").attr("checked", false)});
</script>
81K
13 февраля 2013 года
ICEBERG665
21 / / 05.02.2013
Цитата: arrjj



Код:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<script>
    $(function() {
    $( "#id" ).buttonset()
    });
    $( "#button" ).click(function() {$("#id").attr("checked", false)});
</script>

<button href="#" id="button">Кнопка с текстом</button>
<input type="checkbox" id="id" ><label for="id">Имя</label>



На момент выполнения скрипта кнопки еще не существует. Так работает:

Код:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<button href="#" id="button">Кнопка с текстом</button>
<input type="checkbox" id="id" ><label for="id">Имя</label>
<script>
    $(function() {
    $( "#id" ).buttonset()
    });
    $( "#button" ).click(function() {$("#id").attr("checked", false)});
</script>
[/quote]

Не понял смысла... как это на визуализацию влияет?? проблему выше описал! .attr("checked", false) не меняет визуализацию!
277
13 февраля 2013 года
arrjj
1.7K / / 26.01.2011
Цитата: ICEBERG665

Не понял смысла... как это на визуализацию влияет?? проблему выше описал! .attr("checked", false) не меняет визуализацию!


до того как кнопка создана нельзя для неё указать событие click

Код:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<button href="#" id="button">Кнопка cоздана заранее</button>
<input type="checkbox" id="id" ><label for="id">Имя</label>
<script>
    $(function() {
    $( "#id" ).buttonset()
    });
    $( "#button" ).click(function() {alert('есть событие'); $("#id").attr("checked", false);});
$( "#button2" ).click(function() {alert('есть событие'); $("#id2").attr("checked", false);});
</script>
<br />
<button href="#" id="button2">Кнопка cоздана после отработки скрипта</button>
<input type="checkbox" id="id2" ><label for="id2">Имя</label>
81K
13 февраля 2013 года
ICEBERG665
21 / / 05.02.2013
Цитата: arrjj
Цитата: ICEBERG665

Не понял смысла... как это на визуализацию влияет?? проблему выше описал! .attr("checked", false) не меняет визуализацию!


до того как кнопка создана нельзя для неё указать событие click

Код:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<button href="#" id="button">Кнопка cоздана заранее</button>
<input type="checkbox" id="id" ><label for="id">Имя</label>
<script>
    $(function() {
    $( "#id" ).buttonset()
    });
    $( "#button" ).click(function() {alert('есть событие'); $("#id").attr("checked", false);});
$( "#button2" ).click(function() {alert('есть событие'); $("#id2").attr("checked", false);});
</script>
<br />
<button href="#" id="button2">Кнопка cоздана после отработки скрипта</button>
<input type="checkbox" id="id2" ><label for="id2">Имя</label>



.click() использовал только для примера... интересует сама проблема визуализации, т.к. с программной точки checkbox получается не выбранным!!! без JQ-UI все выделяется и отменяется на ура!!

277
13 февраля 2013 года
arrjj
1.7K / / 26.01.2011
Вот так.
Код:
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<div id="zz">
<button href="#" id="button">Кнопка</button>
<input type="checkbox" id="id" ><label id="zz2" for="id">Имя</label>
</div>
<script>
    $(function() {
    $( "#zz" ).buttonset()
    });
    $( "#button" ).click(function() {$("#id").attr("checked",true).button( "refresh" );});
</script>
90K
26 марта 2013 года
I am Sorry
1 / / 26.03.2013
.removeAttr("disabled");
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог