Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2013, 08:27
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

проверить все текстовые поля на disabled
Полным ходом идёт шаманство над скриптом который я приводил ранее, удалось запихать его в таблицу, работает хорошо, не падает, но теперь надо его проверить, а именно найти все текстовые поля с атрибутом "disabled" и здесь я умудрился запутаться (слишком уж сложно мне это всё дается)
ну вот мой скриптик:
echo "<form action='proverka.php' method='get' name='form' autocomplete='off' onsubmit='return validate_form ( );'>"; // вывожу форму -функция проверки return validate_form ( )
echo "<table border='1'>";
echo '<tr><td>';
//здесь идёт вывод из базы (цикл)
echo '<input type="checkbox" name="agree1" value="а1" id="agree'.$i.'"></td>
<td><input onclick="this.select();" type="text" id="continue'.$i.'" value="Введите число" name='.$zay["id"].'/>& nbsp;'.$mat["ed_izm"].'</td></tr>';
echo "</table>";
  
<script type="text/javascript" src="js/po_chat_sn.js"></script>
<script>
$(document).ready(function(){
  $('input[id^="agree"]').each(function(){
        var $this = $(this); 
         var nextInp = $this.closest('tr').find('input[id^="continue"]');
         nextInp.attr('disabled',true);
         $this.data('next', nextInp);
      $this.click(function() {    
          var nextInp = $(this).data('next');
          if($(this).is(':checked')){
             nextInp.removeAttr('disabled');
          } else  {
           nextInp.attr('disabled',true);
          }    
        });
  });
});
function validate_form ( )
{
if ($("text[disabled=false]"))
{
alert("Прокатило, я нашёл закрытый текст");
} 
$("text[disabled]").next()   
} 
//-->     
</script>
<input type="submit" id="continue1" value="Продолжим" /> 
</form>

Последний раз редактировалось Гробовщик, 18.06.2013 в 09:15.
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2013, 08:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Гробовщик, что есть "закрытые ячейки"?
Ответить с цитированием
  #3 (permalink)  
Старый 18.06.2013, 08:48
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

ksa,
текстовые поля с атрибутом "disabled"
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2013, 09:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Гробовщик
текстовые поля с атрибутом "disabled"
И в чем именно проблема?
Пройдись по всем инпутам нужного типа и проверяй наличие этого атрибута...
Ответить с цитированием
  #5 (permalink)  
Старый 18.06.2013, 09:30
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

ksa,
Не могу полностью понять можно ли в js скрипте "function validate_form ( )" прописывать на синтаксисе jquery "if ($("text[disabled=false]"))" как он вообще должен правильно выглядеть?
function validate_form ( )
{
if ($("text[disabled=false]"))
{
alert("Прокатило, я нашёл закрытый текст");
}
$("text[disabled]").next()  
}
Ответить с цитированием
  #6 (permalink)  
Старый 18.06.2013, 09:47
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Гробовщик
Не могу полностью понять
Для понимания нужны тесты!

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function (){
	alert('test 1');
	$('input[disabled=false]').each(function (){
		alert(this.value);
	});
	alert('test 2');
	$('input[disabled]').each(function (){
		alert(this.value);
	});
	alert('test 3');
	$('input:text').each(function (){
		alert($(this).attr('disabled'));
	});
});
</script>
</head>
<body>
<input type='text' value='1' disabled />
<input type='text' value='2' disabled='false'/>
<input type='text' value='3' id='test' />
<input type='text' value='4' />
<script type="text/javascript">
$('#test').attr('disabled',false);
</script>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 18.06.2013, 10:44
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

ksa,
Вставил в свой код и действительно всё работает, сижу под свои нужды затачиваю. Большое спасибо. P.S. Понимаю что вопросы нубские, но я только начал изучать.
Ответить с цитированием
  #8 (permalink)  
Старый 18.06.2013, 11:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от ksa
Для понимания нужны тесты!
Я бы еще добавил:
<!DOCTYPE html>
<html>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<body>
<input type='text' value='1' disabled />
<input type='text' value='2' disabled='false'/>
<input type='text' value='3' id='test' />
<input type='text' value='4' />
<script type="text/javascript">
  $('#test').attr('disabled',false);
</script>
<script type="text/javascript">
  alert('test 4');
  $('input:disabled').each(function (){
      alert(this.value);
  });
</script>
</body>
</html>

Причем псевдокласс :disabled нативен (это не расширение jQuery).
Также замечу что вместо манипуляции атрибутом предпочтительней менять соответствующее свойство.

Так этот (быдло)код:
this.click(function() {   
          var nextInp = $(this).data('next');
          if($(this).is(':checked')){
             nextInp.removeAttr('disabled');
          } else  {
           nextInp.attr('disabled',true);
          }   
        });

сворачивается до:

this.click(function() {   
          var nextInp = $(this).data('next'); // вобще это смахивает на изврат кстати
          nextInp.prop('disabled', !this.checked);
        });


Причем я помню что такой код уже приводил. Гробовщик, ты смотрю совсем не учишься и игноришь все советы, а?
Ответить с цитированием
  #9 (permalink)  
Старый 18.06.2013, 12:06
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

danik.js,
Да ну как же можно, я стараюсь разбираться, в данный момент это другой модуль который проверяет вводимые данные. JS пока что мне тяжело даётся для понимания (почему он не может быть как php=( ) , поэтому по крайностям и метаюсь. Может посоветуешь литературку азовую, что бы мне по крайностям не метаться, так сказать совет гуру)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить все атрибуты всех инпутов shaltay jQuery 10 19.05.2017 15:07
Как проверить загружены ли все картинки браузером Aderba jQuery 13 29.05.2014 14:18
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
Подгружаемые поля формы AlexJ AJAX и COMET 2 26.06.2009 18:04
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37