Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.11.2017, 17:15
Аспирант
Отправить личное сообщение для maksqwerty Посмотреть профиль Найти все сообщения от maksqwerty
 
Регистрация: 03.11.2017
Сообщений: 58

Не работает jquery-скрипт
Всем привет, есть jquery скрипт:
$(document).ready(function() {
$('#data_v-gwert').change(function(){
   if($(this).val() <= "5000"){
$("#block1_5000").css ("display", "block");
$("#block2_5000").css ("display", "block");
$("#block3_5000").css ("display", "block");
$("#block4_5000").css ("display", "block");
}
else {
$("#block1_5000").css ("display", "none");
$("#block2_5000").css ("display", "none");
$("#block3_5000").css ("display", "none");
$("#block4_5000").css ("display", "none");
}
});
});


и элементы таблицы, которые я хочу скрыть/открыть
<td id="block1_5000" style="display: none;">тест</td>

и тд..
Это всё делается в зависимости от числа, которое ввёл в инпут с ид data_v-gwert

Но оно не работает:С
Ошибок валидатор не выдал.
ЧЯДНТ?
Ответить с цитированием
  #2 (permalink)  
Старый 03.11.2017, 17:26
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

maksqwerty,
Попробуйте
$('#data_v-gwert').on('input', function(){
if($(this).val() <= 5000){
Ответить с цитированием
  #3 (permalink)  
Старый 03.11.2017, 17:34
Аспирант
Отправить личное сообщение для maksqwerty Посмотреть профиль Найти все сообщения от maksqwerty
 
Регистрация: 03.11.2017
Сообщений: 58

большое спасибо, сдвижение есть.
Но, как всегда есть одно "но",
элемент с ид data_v-gwert - поле, которое получает значение, после двух других полей
(т.е data_v-gwert = a*b, к примеру, где a и b - другие поля.)
так что, в этом случае ваш метот не работает :С
и второе "но"
у меня есть :
<td id="block1_5000" style="display: none;">тест</td>
<td id="block2_5000" style="display: none;">тест</td>
<td id="block3_5000" style="display: none;">тест</td>
<td id="block4_5000" style="display: none;">тест</td>

Т.е это целая строка таблицы, и когда я всё-же вписал вручную значение, и ваше решение заработало, таблица создалась как-то некоректно.
Могу ли я обернуть целую строку таблицы в какой-то див (но что-бы он поддерживал универсальные атрибуты и стили)? В форму я обернуть не смогу, наверное, так как эти значения потом буду в бд передавать

Последний раз редактировалось maksqwerty, 03.11.2017 в 17:46.
Ответить с цитированием
  #4 (permalink)  
Старый 03.11.2017, 17:45
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

maksqwerty,
Сообщение от maksqwerty
элемент с ид data_v-gwert - поле, которое получает значение, после двух других полей
(т.е data_v-gwert = a*b, к примеру, где a и b - другие поля.)
Тогда применяйте обработчик события к ним, а не к результату
Сообщение от maksqwerty
это целая строка таблицы
Так и показывайте/прячьте тогда целую строку, а не отдельные ячейки
Ответить с цитированием
  #5 (permalink)  
Старый 03.11.2017, 17:50
Аспирант
Отправить личное сообщение для maksqwerty Посмотреть профиль Найти все сообщения от maksqwerty
 
Регистрация: 03.11.2017
Сообщений: 58

Сообщение от Dilettante_Pro Посмотреть сообщение
maksqwerty,

Тогда применяйте обработчик события к ним, а не к результату
Так и показывайте/прячьте тогда целую строку, а не отдельные ячейки
так нельзя сделать, так как это применяется только к результату.
Всё-равно, какой value будет в a или в b, главное, что будет в результате

Я обернул эти ячейки в общий див, но не могу прописать этоу диву style = "display:block"
Ответить с цитированием
  #6 (permalink)  
Старый 03.11.2017, 18:10
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Либо так
A<input id="data_a-gwert" type = "text" value = "1"> 
B<input id="data_b-gwert" type = "text" value = "1"> 
<input id="data_v-gwert" type = "text" disabled> 
<table>
<tr id="block_5000" >
<td id="block1_5000" >тест</td>
<td id="block2_5000" >тест</td>
<td id="block3_5000" >тест</td>
<td id="block4_5000" >тест</td>
</tr>
<table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$('#data_a-gwert, #data_b-gwert').on("input",function(){
   $('#data_v-gwert').val($('#data_a-gwert').val() * $('#data_b-gwert').val()) ;
   if($('#data_v-gwert').val() <= 5000){
$("#block_5000").css ("display", "block");
}
else {
$("#block_5000").css ("display", "none");
}
});
</script>

либо так
A<input id="data_a-gwert" type = "text" value = "1"> 
B<input id="data_b-gwert" type = "text" value = "1"> 
<input id="data_v-gwert" type = "text" disabled> 
<table>
<tr id="block_5000" >
<td id="block1_5000" >тест</td>
<td id="block2_5000" >тест</td>
<td id="block3_5000" >тест</td>
<td id="block4_5000" >тест</td>
</tr>
<table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$('#data_a-gwert, #data_b-gwert').on("input",function(){
   $('#data_v-gwert').val($('#data_a-gwert').val() * $('#data_b-gwert').val()) ;
   if($('#data_v-gwert').val() <= 5000){
$("#block1_5000").css ("display", "table-cell");
$("#block2_5000").css ("display", "table-cell");
$("#block3_5000").css ("display", "table-cell");
$("#block4_5000").css ("display", "table-cell");
}
else {
$("#block1_5000").css ("display", "none");
$("#block2_5000").css ("display", "none");
$("#block3_5000").css ("display", "none");
$("#block4_5000").css ("display", "none");
}
});
</script>

Последний раз редактировалось Dilettante_Pro, 03.11.2017 в 18:15.
Ответить с цитированием
  #7 (permalink)  
Старый 03.11.2017, 18:23
Аспирант
Отправить личное сообщение для maksqwerty Посмотреть профиль Найти все сообщения от maksqwerty
 
Регистрация: 03.11.2017
Сообщений: 58

Dilettante_Pro,
большое спасибо за ваш ответ, но эти a и b - это был только пример.
На самом деле это ячейки с другой динамической таблицы, которая написана на обычном js.

А может можно сделать скрытый селект, который менял бы свои значения в зависимости от data_v-gwert
и уже отталкиваться от этого селекта?
Или это тоже идея так себе? : /
Ответить с цитированием
  #8 (permalink)  
Старый 03.11.2017, 18:27
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

maksqwerty,
А чем вам не нравится data_v-gwert ?
Вы же ее когда-то заполняете? вот при этом и проверяйте ее значение и показывайте/скрывайте ячейки.
Сообщение от maksqwerty
написана на обычном js.
Ну и что? JS и jQuery можно совмещать - хотя это не очень "красиво", лучше свести все к одной технологии

Последний раз редактировалось Dilettante_Pro, 03.11.2017 в 18:34.
Ответить с цитированием
  #9 (permalink)  
Старый 03.11.2017, 18:34
Аспирант
Отправить личное сообщение для maksqwerty Посмотреть профиль Найти все сообщения от maksqwerty
 
Регистрация: 03.11.2017
Сообщений: 58

Dilettante_Pro,
да она то мне всем нравится
Приведу часть кода с той таблицы, которая отвечает за заполнение этого поля:
function wertzahl()
{
    gwert = 0;
    wertsum = 0;
    for ( var wertindex =1; wertindex<40; wertindex++){
        var preis100sum = parseFloat(document.getElementById('preispro100'+wertindex).value);
        var mengesum = parseInt(document.getElementById('menge'+wertindex).value);
        var wertsum = preis100sum/100 * mengesum;

        //Wert
        document.getElementById('wert'+wertindex).value = wertsum;

        //Gwert
        var gwert; 
        gwert += wertsum;
          if (isNaN(gwert)==true) gwert = 0;
        document.getElementById('data_v-gwert').value = gwert;
    }
}

и вот как выглядит сам мой data_v-gwert:
<input type="number" step="0.01" id="data_v-gwert"  onfocus="wertzahl()"  class="form-control">

Просто я в jquery (как и в js) новичок, и не знаю, как верно использовать события
Ответить с цитированием
  #10 (permalink)  
Старый 03.11.2017, 18:35
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

maksqwerty,
Увы, уже убегаю - может, кто еще поможет
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт работает только на первом экране AnMiheeva Общие вопросы Javascript 0 11.06.2014 03:56
Ни один скрипт и плагин не видит Jquery razorg1991 jQuery 5 30.03.2014 14:51
jquery не работает в цикле alexus jQuery 3 03.09.2011 14:49
скрипт на сайт под Джумлой, не работает в FF matysse Элементы интерфейса 1 11.10.2010 21:14
Не работает jQuery меню с AJAX eugene1986 jQuery 0 08.07.2010 18:49