Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   input и изменение value (https://javascript.ru/forum/dom-window/54430-input-i-izmenenie-value.html)

Trues 17.03.2015 10:20

input и изменение value
 
Всем доброго времени суток есть такой вопрос.

Есть инпут
<input type='text' value='Привет' id='one-inp'>

при нажатии на этот инпут надо затереть value

$(document).ready(function(){
    $('#one-inp').click(function(){
        $('#one-inp').val('');
    });
});


а вопрос следущий как сделать чтоб если мы кликам на что либо другое то идет следующая проверка

if($('#one-inp').val() == '' )
    {
     $('#one-inp').val('Привет');
    }


как оформить это событие (клик на любой блок кроме этого дива)

laimas 17.03.2015 10:56

А зачем такая задача стоит? Может проще потерю фокуса элементом проверять? И о каком div идет речь?

$('#one-inp').click(function(){
    //$('#one-inp').val('');
    $(this).val('');
    //или сразу и без jQ
    this.value = ''
});

ksa 17.03.2015 11:04

Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('#one-inp').focus(function(){
		this.value='';
	}).blur(function(){
		this.value=(this.value=='')? 'Привет': this.value;
	});
});
</script>
</head>
<body>
<input type='text' value='Привет' id='one-inp' />
</body>
</html>

ksa 17.03.2015 11:07

Современный вариант...

<input type='text' placeholder='Привет' value='' id='one-inp' />

Trues 17.03.2015 11:31

я извиняюсь не дива а инпута. и да потеря фокуса тоже сканает

Trues 17.03.2015 11:33

и да к сожалению placeholder не подходит. так как надо именно при клике затирать. а placeholder в мозиле затирает только тогда когда начинаешь что то вписывать

Trues 17.03.2015 11:34

Всем спасибо буду пробывать :)

Trues 17.03.2015 14:44

Ребят еще вопрос
у меня есть несколько инпутов
<input id="fio" class="inp-anketa" type="text" value="ФИО">
<input id="Phone_vak" class="inp-anketa" type="text" value="" placeholder="Телефон">
<input id="mail" class="inp-anketa" type="text" value="Email">


и есть функия с фокусом на проверку

$('#fio').focus(function(){
		if(this.value == '' || this.value == 'ФИО')
			{
			this.value = '';
			$(this).css('color','#000000');
			}
	}).blur(function(){
		if(this.value == '')
			{
			$(this).css('color','#757575');
			this.value = 'ФИО';
			}
	});


как то можно записать эту функцию так чтоб при нажатии или получение фокуса на любой инпут шла проверка по этой функции.
предположим их вобще 10. а раписывать для каждого инпута эту функию как то не хорошо громоский код получается.

ksa 17.03.2015 14:56

Цитата:

Сообщение от Trues
как то можно записать эту функцию так чтоб при нажатии или получение фокуса на любой инпут шла проверка по этой функции.

Например так...

<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('.inp-anketa').focus(function(){
		if(this.value == '' || $(this).data('empty') == this.value) {
			this.value = '';
			$(this).css('color','#000000');
		};
	}).blur(function(){
		if(this.value == ''){
			$(this).css('color','#757575');
			this.value = $(this).data('empty');
		};
	}).each(function(){
		this.value = $(this).data('empty');
	});

});
</script>
</head>
<body>
<input id="fio" class="inp-anketa" type="text" value=""  data-empty="ФИО" />
<input id="Phone_vak" class="inp-anketa" type="text" value="" data-empty="Телефон" />
<input id="mail" class="inp-anketa" type="text" value="" data-empty="Email" />
</body>
</html>

Trues 17.03.2015 15:12

ksa ты как всегда выручаешь большое спасибо


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