2013-07-27 2 views
1

Я отправляю следующий код, который используется для отключения текстовых полей таблицы. теперь как изменить его так, чтобы он также отключил текстовые поля для полей, скажем, id = name = usn.как отключить поля таблицы и текстовые поля сразу с помощью jquery?

jQuery(document).ready(function ($) { 
// Disabling Text Fields by default 
$("table input[type='text']").each(function() { 
    $(this).attr("disabled", "disabled"); 
}); 

$(".inputradio1 input[name=select1]").change(function() { 
    var val = $(this).val(); 
    if (val == "No") { 
     $("table input[type='text']").each(function() { 
      $(this).attr("disabled", "disabled"); 
     }); 
    } else if (val == "Yes") { 
     $("table input[type='text']").each(function() { 
      $(this).removeAttr("disabled"); 
     }); 
    } 
}); 
}); 
+0

вы хотите отключить на основе идентификатора или имени? – Harry

ответ

2

Используйте prop ('disabled', true) вместо этого. Было несколько изменений со времен версий jQuery 1.6/1.7, чтобы различать атрибуты и свойства. Кроме того, нет никакой необходимости для петель, вы можете просто применить его к целому набору соответствующих элементов:

$("table input[type='text']").prop('disabled', true); 

Используя следующий будет также сделать ваш селектор быстрее & короче следующим содержанием:

$("table :text").prop("disabled", true); 

Итак, в конце концов, у вас остались:

$("table :text").prop("disabled", true); 

$(".inputradio1 input[name=select1]").change(function() { 
    $("table :text").prop('disabled', $(this).val() === 'No'); 
}); 
+0

но поле usn is enable til now –

+0

Я не знал, что вы можете использовать ': text' на своем собственном виде. Хороший совет. – cgTag

1

Я не уверен, что я понимаю вопрос.

Используйте вместо этого prop().

Отключить, если id или name is usn.

// id's are suppose to be unique. no need for complex find 
$("#usn, table input[name='usn']").prop("disabled",true); 

EDIT:

jQuery(document).ready(function ($) { 
    // Disabling Text Fields by default 
    $("table input[type='text']").prop('disabled',true); 
    $("#usn, table input[name='usn']").prop("disabled",true); 

    $(".inputradio1 input[name=select1]").change(function() { 
     val disable = $(this).val() == "No"; 
     $("table input[type='text']").prop("disabled",disable); 
     $("#usn, table input[name='usn']").prop("disabled",disable); 
    }); 
}); 
+0

Вы правы, но я хочу объединить оба ... i.e $ ("# usn, table input [name = 'usn']"). Prop ("disabled", true); и $ ("table: text"). prop ('disabled', $ (this) .val() === 'No'); –

+0

thnx для справки .. –

+0

@SakirAlam Я не уверен, что понимаю, но мое редактирование ближе к тому, что вам нужно? – cgTag

1

да друзей я сделал это ...

$("table :text").prop("disabled", true); 

$(".inputradio1 input[name=select1]").change(function() { 
$("#usn, table input[name='usn']").prop('disabled', $(this).val() === 'No') && $("table :text").prop('disabled', $(this).val() === 'No'); 
}); 
+0

ах хорошо, но вам не нужно '&&' – cgTag

Смежные вопросы