2010-06-01 2 views
1

Я пытаюсь отключить некоторые поля ввода, используя jQuery 1.4.2. Это часть HTML-кода:Отключение входов с jQuery не работает

<input type="text" disabled="disabled" name="nume" value="Text" /> 

Это Javascript:

$('.salveaza').live('click', function(e){ 
    $.get(ajaxURL, $('form', itemCurent).serialize()+'&id='+itemCurent.data('id')+'&optiune=editeaza-categorie'); 

    // This is the code for disabeling inputs 
    $('input', itemCurent).attr('disabled', 'disabled'); 

    itemCurent.removeClass('curent'); 
    $('.optiuniEditeaza', itemCurent).remove(); 

    e.preventDefault(); 
}); 

Приведенный выше код не работает. Обратите внимание, что входы добавляются с помощью jQuery, поэтому я использую live, я пробовал всевозможные вещи.

Я также попытался Firebug консоль, чтобы отключить все поля ввода на странице, и он не работает:

$('input').attr('disabled', 'disabled'); 

Любая помощь будет apreciated, Благодаря

+0

Это будет правильная процедура для отключения элемента 'input', если' input' является дочерним элементом 'itemCurent'. Вы уверены, что код после вашего '$ .get()' запущен? Выполняется ли запрос? – user113716

+0

Да, вход является дочерним элементом itemCurent, я также попытался отключить все входы на странице, и он просто позволяет им все. – Andrei

ответ

1

Используйте true вместо того, чтобы disabled:

$("input").attr("disabled", true); 

Рабочий пример: http://jsfiddle.net/bEC8L/ (ввод задан как d возможно через 5 секунд)

jQuery устанавливает свойства вместо атрибутов, если данный атрибут фактически является именем свойства, а "disabled" является недопустимым значением для свойства disabled.

+0

Я попытался использовать true, и он не работает, я использовал код, который вы мне дали, и он позволяет использовать все входы, а не отключать их. – Andrei

+0

@andreeib: Вы проверили рабочий пример по ссылке, которую я разместил? Я просто протестировал его в нескольких браузерах. Ваша проблема должна быть в другом месте. –

+0

Да, я проверил ваш пример, и он работает, я использовал консоль, и я отключил входы на этой странице stackoverflow, но когда я хочу отключить входные данные на моей странице, я просто закончу их все. Спасибо за ваш быстрый ответ. – Andrei

1

Это должно сделать трюк:

Disable: $('#the-field-id').attr('disabled', true);

Включить: $('#the-field-id').removeAttr('disabled');

+0

Да, ваш код должен работать, но это не так. – Andrei

+0

В поле ввода вы должны установить идентификатор или класс, чтобы вызвать это действие! [$ ('# something') -> call ID "something"] [$ ('.что-то ') -> вызов класса «что-то»] [# -> для ID] [. -> для класса] – Zuul

0

Ваш кусок кода, кажется, хорошо, так что проблема должна быть из другой части кода. Положите разрыв на строку, где вы отключите, а затем шаг за шагом.

0

Попробуйте этот код. При нажатии кнопки текстовое поле будет отключено.

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#fname").attr("disabled",false); 
     $("#idDisable").click(function(){ 

      $("#fname").attr("disabled",true); 

     }); 

    }); 
</script> 

    <input type="button" id="idDisable" value="click to disable" name="Click"/> 
    <input type="text" id="fname" />