#javascript #jquery
#javascript #jquery
Вопрос:
Как я могу найти текстовые поля только для чтения в форме .. я проверил это .. но это не работает..
$('input[readonly="readonly"]').each(function()
{
$(this).attr('tabindex', '-1');
}
Ответ №1:
Это работает для меня, как:
console.log($('input[readonly="readonly"]'));
и
console.log($('input[readonly]'))
посмотрите на эту скрипку
Редактировать:
Проблема с вашим кодом заключается в том, что в нем отсутствует окончание )
. Посмотрите на эту рабочую скрипку:
$('input[readonly="readonly"]').each(function()
{
$(this).attr('tabindex', '-1');
});
Что касается вашего комментария, вопрос о readonly
динамической настройке, а затем поиске входных данных:
$('input[name="country"]').attr('readonly', 'readonly');
$('input[readonly="readonly"]').each(function()
{
$(this).attr('tabindex', '-1');
});
Комментарии:
1. Работает ли это, если свойство «только для чтения» задано программно, а не как атрибут непосредственно для элемента HTML?
2. работает второй. я хочу поставить еще одно условие. получить все текстовые поля только для чтения, в которых идентификатор не заканчивается на «-date». Как я могу его включить??
3. Не
readonly
следует устанавливать / изменять, используя.prop
вместо.attr
в jQuery 1.6?4. в этом случае вы должны использовать
$('input:not([id$="-date"])')
. Если вы хотите, отправьте другой вопрос, чтобы я мог дать вам полный ответ.
Ответ №2:
Вы могли бы сделать это:
$('input').filter(function() { return !!$(this).prop('readonly'); }).each(function() {
// ...
});
Вы также можете просто проверить свойство в теле обратного вызова «.each()»:
$('input').each(function() {
if (!$(this).prop('readonly')) return;
// ...
});
Ответ №3:
Попробуй
$('input[readonly]').each(function()
{
$(this).attr('tabindex', '-1');
}
Может быть потому, что не каждый браузер создает значение только для чтения, но просто ничего.
Ответ №4:
jQuery(function($){
$('input').each(function() {
if ($(this).is('[readonly]')) alert(this.id);
});
});
Комментарии:
1. я хочу поставить еще одно условие. получить все текстовые поля только для чтения, в которых идентификатор не заканчивается на «-date». Как я могу его включить??
Ответ №5:
Этого должно быть достаточно, чтобы использовать это в качестве селектора: input[readonly]
По крайней мере, chrome будет видеть вводимые данные только для чтения, пока у него есть атрибут, независимо от того, какое значение он имеет.