Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Значение одного от значений другого (https://javascript.ru/forum/misc/35174-znachenie-odnogo-ot-znachenijj-drugogo.html)

EleGant 02.02.2013 08:07

Значение одного от значений другого
 
Как при изменении одного
<input type="text" id="14" name="option[233]" value="100" />
изменить автоматические значение в поле
<input type="text" id="15" name="option[234]" value="100" />

и чтобы еще было соотношение сторон...
вот нашел кусок кода
//proportions
			$('#height, #slider-height').bind('keyup slide', function(){
				if($('#proportions input').is(':checked')){
					var proportions = $('.image').width() / $('.image').height();
					$('#width').val(($('#slider-height').slider('value') * proportions).toFixed(0));
					$('#height').val(($('#slider-height').slider('value')));
				}
				if ($(this).is('#height') && parseInt($(this).val()) > 95) {
					$(this).val(95);
				}				
			});
			$('#width, #slider-width').bind('keyup slide', function(){
				if($('#proportions input').is(':checked')){
					var proportions = $('.image').width() / $('.image').height();
					$('#height').val(($('#slider-width').slider('value') / proportions).toFixed(0));
					$('#width').val(($('#slider-width').slider('value')));
				}
			});

danik.js 02.02.2013 08:58

<input type="text" id="14" name="option[233]" value="100" />
<input type="text" id="15" name="option[234]" value="100" />

<script>
    document.getElementById('14').addEventListener('input', function(e){
        document.getElementById('15').value = this.value;
    });
</script>

EleGant 02.02.2013 12:24

Сделал как вы написали, но он меняет только если вводишь в ручную.
А у меня значение первого инпута меняет jQuery UI Slider, такой ползунок.
вот код страницы.
<div id="slider"></div>
		
		
		<script type="text/javascript">



jQuery("#slider").slider({
	min: 1,
	max: 4,
	values: 4,
	range: "max",
	stop: function(event, ui) {
		jQuery("input#14").val(jQuery("#slider").slider("values",0));

		
    },
    slide: function(event, ui){
		jQuery("input#14").val(jQuery("#slider").slider("values",0));
	
    }
	
});  

</script>
......

 <b>Длина:</b><br />
<input type="text" id="14" name="option[233]" value="100" />
<br />
 <b>Ширина:</b><br />
<input type="text" id="15" name="option[234]" value="100" />

......

	          <script>
    document.getElementById('14').addEventListener('input', function(e){
        document.getElementById('15').value = this.value;
    });
</script>


Нужно что бы при изменении слайдером значений в инпуте id="14" изменялись значения и во втором

Deff 02.02.2013 13:22

Цитата:

Сообщение от EleGant
Сделал как вы написали, но он меняет только если вводишь в ручную.

После очередного программного ввода = вызывайте событие
Цитата:

jQuery("input#14").val(jQuery("#slider").slider("v alues",0));
jQuery("input#14").input()

EleGant 02.02.2013 14:07

не понял...я не особо в Java силен

EleGant 02.02.2013 14:15

<script type="text/javascript">



jQuery("#slider").slider({
	min: 1,
	max: 4,
	values: 4,
	range: "max",
	stop: function(event, ui) {
		jQuery("input#14").val(jQuery("#slider").slider("values",0));
jQuery("input#14").input()

		
    },
    slide: function(event, ui){
		jQuery("input#14").val(jQuery("#slider").slider("values",0));
jQuery("input#14").input()
	
    }
	
});  

</script>

Сделал так...не помогает

Deff 02.02.2013 14:19

EleGant,
Эээ а Вы зачем выбросили (*Подразумевалось для совместного пользования
<script>
37	    document.getElementById('14').addEventListener('input', function(e){
38	        document.getElementById('15').value = this.value;
39	    });
40	</script>

==========================
На Query аналог выше приведённой функции:
jQuery("input#14").live('input',function(){
   jQuery("input#15").val(jQuery(this).val());
	     
});

EleGant 02.02.2013 14:50

Сделал так:
<b>Длина:</b><br />
<input type="text" id="14" name="option[233]" value="100" />
<br />
 <b>Ширина:</b><br />
<input type="text" id="15" name="option[234]" value="100" />
....

<script type="text/javascript">
jQuery("#slider").slider({
	min: 1,
	max: 4,
	values: 4,
	range: "max",
	stop: function(event, ui) {
		jQuery("input#14").val(jQuery("#slider").slider("values",0));

		
    },
    slide: function(event, ui){
		jQuery("input#14").val(jQuery("#slider").slider("values",0));

	
    }
	
}  );

</script>
<script type="text/javascript">
jQuery("input#14").live('input',function(){

   jQuery("input#15").val(jQuery(this).val());

});</script>


Но все равно не работает от слайдера...только если в инпут 14 вводишь руками тогда меняет 15...а если слайдером двигаешь то в 14 меняются значения, а в 15 нет

Deff 02.02.2013 15:26

<b>Длина:</b><br />
<input type="text" id="14" name="option[233]" value="100" />
<br />
 <b>Ширина:</b><br />
<input type="text" id="15" name="option[234]" value="100" />
....

<script type="text/javascript">
jQuery("#slider").slider({
	min: 1,
	max: 4,
	values: 4,
	range: "max",
	stop: function(event, ui) {
		jQuery("input#14").val(jQuery("#slider").slider("values",0));
		jQuery("input#14").input()

		
    },
    slide: function(event, ui){
		jQuery("input#14").val(jQuery("#slider").slider("values",0));
		jQuery("input#14").input()

	
    }
	
}  );

</script>
<script type="text/javascript">
jQuery("input#14").live('input',function(){

   jQuery("input#15").val(jQuery(this).val());

});</script>

danik.js 02.02.2013 17:17

Событие input отсутствует в ie7-8 если что. Возможно jquery это исправляет.

Цитата:

Сообщение от EleGant
не понял...я не особо в Java силен

http://lurkmore.to/Javascript#JavaScript_.3D.3D_Java


Часовой пояс GMT +3, время: 07:41.