Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2019, 10:35
Интересующийся
Отправить личное сообщение для Ganisher Посмотреть профиль Найти все сообщения от Ganisher
 
Регистрация: 07.11.2019
Сообщений: 13

Clear cache !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Всем привет!
когда меняем значение input (не обновляя) хранится самое первое набитое значение.
error.jpg
(выходить "16" а не "77")


<!DOCTYPE html>
<html>
	<head>
		<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<style>

.errorstyle
			{
			    border: 1px solid #ff0000;
			    background: #fff3f3;
			}
			.popover
			{
			    box-shadow: 5px 0px 40px rgba(0,0,0, .2);
			    max-width: 500px !important;
			    max-height: 200px !important;
			    overflow-y: auto;
			    overflow-x: hidden;
			    border: 1px solid #ff0000;
			    background: #fff3f3;
			}

</style>
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
		<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
		<script>

$(function(){
		    $('.container').on('focusout', '#second', function () {
		        let first = $('#first').val().trim();
		        let second = $('#second').val().trim();

		        if (second)
		            if (+first <= +second) {
		                
		                let errortext = '<p>The value of first (' + first +') input must be greater than the value of secondone (' + second	 + ')</p>';
		                let poperror = {
		                    content: errortext,
		                    html: true,
		                    trigger: 'focus',
		                    placement: 'bottom'
		                };
		                $('#second').popover(poperror).popover('enable');
		                $('#second').addClass("errorstyle");
		            } else {
		                $('#second').popover('disable');
		                $('#second').removeClass("errorstyle");
		            }
		    });
		});

</script>
	</head>
	<body>
		<div class="container">
		  <form>
		    <div class="form-group">
		      <label for="first">First:</label>
		      <input type="number" class="form-control" id="first" name="firstone">
		    </div>
		    <div class="form-group">
		      <label for="second">Second:</label>
		      <input type="number" class="form-control" id="second" name="secondone">
		    </div>
		  </form>
		</div>
	</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2019, 10:38
Интересующийся
Отправить личное сообщение для Ganisher Посмотреть профиль Найти все сообщения от Ganisher
 
Регистрация: 07.11.2019
Сообщений: 13

Есть кто знает помогите пожалуйста!!!
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2019, 11:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ничего не понятно, поясните - когда меняем значение input (не обновляя) хранится самое первое набитое значение, в чем проблема?
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2019, 11:49
Интересующийся
Отправить личное сообщение для Ganisher Посмотреть профиль Найти все сообщения от Ganisher
 
Регистрация: 07.11.2019
Сообщений: 13

когда меняем значения второго input у него в памяти остается своя первая значения (перво набитая)
Ответить с цитированием
  #5 (permalink)  
Старый 29.11.2019, 11:53
Интересующийся
Отправить личное сообщение для Ganisher Посмотреть профиль Найти все сообщения от Ganisher
 
Регистрация: 07.11.2019
Сообщений: 13

побробуйте набивать другую значению (не обновляя страницу) во второй инпут он показоват будет свою первую значению в контексте ошибке
Ответить с цитированием
  #6 (permalink)  
Старый 29.11.2019, 11:56
Интересующийся
Отправить личное сообщение для Ganisher Посмотреть профиль Найти все сообщения от Ganisher
 
Регистрация: 07.11.2019
Сообщений: 13

как избавиться от этого?
Ответить с цитированием
  #7 (permalink)  
Старый 29.11.2019, 16:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение не обновляется, а то штаны, штаны. ) Попробуйте так:

$('#second').popover({
         content: '<p></p>',
         html: true,
         trigger: 'blur',
         placement: 'bottom'
}).on('shown.bs.popover', function () { 
    var first = +this.form.firstone.value || 0,
        second = +this.value || 0;
    if(first && second && first <= second) { 
        $('div.popover-body p').text('The value of first (' + first +') input must be greater than the value of secondone (' + second + ')');
        $(this).addClass("errorstyle")
    } else {
        $('div.popover').remove();
        $(this).removeClass("errorstyle")
    }
});


Зачем type="number"?

Последний раз редактировалось laimas, 29.11.2019 в 16:58.
Ответить с цитированием
  #8 (permalink)  
Старый 02.12.2019, 10:01
Интересующийся
Отправить личное сообщение для Ganisher Посмотреть профиль Найти все сообщения от Ganisher
 
Регистрация: 07.11.2019
Сообщений: 13

Зачем type="number"? - eto ne obezatelno

no cto to ne to
text oshibke ne vixodit. Vixodit tolko pustoe popover
Ответить с цитированием
  #9 (permalink)  
Старый 02.12.2019, 10:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Все выводит, попробуйте событие в триггере заменить.
Ответить с цитированием
  #10 (permalink)  
Старый 02.12.2019, 12:31
Интересующийся
Отправить личное сообщение для Ganisher Посмотреть профиль Найти все сообщения от Ganisher
 
Регистрация: 07.11.2019
Сообщений: 13

$(function(){
			    $('.container').on('focusout', '#second', function () {
			        let first = +($('#first').val()) || 0,
			        	second = +($('#second').val()) || 0;

			        if (second)
			            if (first <= second) {
			                
			                //let errortext = '<p>The value of first (' + first +') input must be greater than the value of secondone (' + second + ')</p>';
			                let poperror = {
			                    content: '',
			                    html: true,
			                    trigger: 'hover focus',
			                    placement: 'bottom'
			                };
			                $('#second').popover(poperror).popover('enable');
			                $('#second').popover(poperror).text('<p>The value of first (' + first + ') input must be greater than the value of secondone (' + second + ')</p>');
			                $('#second').addClass("errorstyle");
			            } else {
			                $('#second').popover('disable');
			                $('#second').removeClass("errorstyle");
			            }
			    });
			});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
To do list на js кнопки Clear all и Done all(+localStorage) Dethlike Общие вопросы Javascript 10 10.05.2019 15:10
Ошибка команды clear при работе бота | Discord.js ShandiEgoza Общие вопросы Javascript 0 24.02.2019 15:11
float, clear, overflow torsar (X)HTML/CSS 3 11.11.2016 09:34
jquery dialog cache гуня Общие вопросы Javascript 7 16.01.2016 17:10
Function Cache y0uix Общие вопросы Javascript 51 09.12.2014 18:40