Функция вызывается несколько раз 
		
		
		
		Всем привет, имеется код:  
	
function showEdit(param) // Функция для отображения редактируемого поля
{
    x = param.id.replace(/[a-z]/ig, '');
    readOnly(x, false);
    
    document.getElementById(param.id).onkeydown = function (e) { //ENTER
    e = e || window.event;
    
        if (e.keyCode === 13) 
        {
            readOnly(x, true);
            editColumns(x); 
        }
    }
    
    $("input").blur(function(){
                editColumns(x);
        readOnly(x, true); 
    });
    
    $("textarea").blur(function(){
        editColumns(x);
        readOnly(x, true); 
    });
    
    return false;
}
Данная функция вызывается при двойном клике по input. Внизу у меня blur (если пользователь ввел что-то в поле, а после поле потеряло фокус, то вызывается функция editColumns, которая ведет уже на php скрипт. Проблема в том, что функция вызывается несколько раз, подозреваю, дело в том, что я неправильно прописываю blur (может, нужна какая-та проверка?). Если повесить в данный код alert, alert выпрыгнет раза 3-5, что я делаю не так? Пробовал делать так: 
$("textarea").focusout(function(){
		alert('qwe');
		// editColumns(x);
		// readOnly(x, true); 
    });
сначала алерт вызывается 1 раз, потом при следующем двойном клике - 2 и так дальше и дальше.  | 
	
		
 Пробовал сделать так: 
	
$("input").one("focusout", function(){
		alert('ewq');
		//readOnly(x, true); 
    });
	
	
	$("textarea").one("focusout", function(){
		alert('qwe');
		// editColumns(x);
		// readOnly(x, true); 
    });
но раз функция выбьет 1 алерт, при втором двойном клике два или три, и так рандомно выбивает то 1, то 5, то 3 и т.д.  | 
	
		
 KiberQ, здравствуйте. 
	Вынесите обработчики события blur за пределы функции showEdit. Каждый раз, вызывая showEdit, Вы назначаете новый обработчик.  | 
	
		
 
$("input").focusout(function(){
		alert('input');
    });
$("textarea").focusout(function(){
		alert('textarea');
    });	
	
function showEdit(param) // Функция для отображения редактируемого поля
{
	x = param.id.replace(/[a-z]/ig, '');
	readOnly(x, false);
	
	document.getElementById(param.id).onkeydown = function (e) { //ENTER
	e = e || window.event;
	
		if (e.keyCode === 13) 
		{
			readOnly(x, true);
				
		}
	}
	
	return false;
}
Вынес вне функций в js файл, теперь алерты вообще не появляются.  | 
	
		
 KiberQ, 
	ну, наверное, потому что элементы еще не загружены на страницу. Используйте ready или load: https://jqbook.net.ru/jquery/Events1  | 
	
		
 Да, спасибо, помогло, так работает: 
	
$(document).ready(function() {
	$('title#titleText').html("Договора");
	$("input").blur(function(){
                editColumns(x);
		readOnly(x, true); 
    });
	
	$("textarea").blur(function(){
		editColumns(x);
		readOnly(x, true); 
    });
});
Но теперь назревает следующий вопрос, а как в (document).ready передать теперь x без глобальной переменной?  | 
	
		
 KiberQ, 
	не поняла, что нужно... Можете сделать исполняемый пример?  | 
	
		
 HTML 
	<инпут двойной клик = "showEdit(this)"> JS 
function showEdit(param) // Функция для отображения редактируемого поля
{
	x = param.id.replace(/[a-z]/ig, ''); //Получаем id инпута
	readOnly(x, false); // Это нам не важно
	
	document.getElementById(param.id).onkeydown = function (e) { //ENTER
	e = e || window.event;
	
		if (e.keyCode === 13) 
		{
			readOnly(x, true);
                        editColumns(x); // При нажатии на enter сохраняем
				
		}
	}
	
	return false;
}
И, собственно, то, что Вы подсказали: 
$(document).ready(function() {
	$('title#titleText').html("Договора");
	$("input").blur(function(){
		alert(x); //Тот самый x из showEdit
    });
	
	$("textarea").blur(function(){
		alert(x); //Тот самый x из showEdit
    });
});
 | 
	
		
 KiberQ, 
	ну так Ваш вариант работает: 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
function showEdit(param) // Функция для отображения редактируемого поля
{
    x = param.id.replace(/[a-z]/ig, ''); //Получаем id инпута
    console.log(x);
     
    return false;
}
$(document).ready(function() {
    $('title#titleText').html("Договора");
    $("input").blur(function(){
        alert(x); //Тот самый x из showEdit
    });
     
    $("textarea").blur(function(){
        alert(x); //Тот самый x из showEdit
    });
});
</script>
<textarea id="test1"></textarea>
<input type="text" id="test2" ondblclick="showEdit(this)">
<input type="text" id="test3" ondblclick="showEdit(this)">
</body>
Чем не нравится?  | 
	
		
 Так как выведется x, если он локальный, существующий только в функции showEdit?  
	alert(x); //Тот самый x из showEdit  | 
| Часовой пояс GMT +3, время: 09:24. |