2015-06-22 3 views
1

У меня есть функция, которая вставляет значение в скрытый ввод. Как только значение ввода изменяется из-за моей функции, я хотел бы, чтобы переменная обновлялась.JavaScript onchange update variable, как только изменения ввода текстового значения

Я продолжаю сталкиваться с ошибками. Либо я получаю Object Object в качестве ответа, когда проверяю переменную, либо переменная не обновляется, если я вручную не вводил значение во входных данных, а затем выходил из окна.

var name = $('#name'); 
 

 
function updateVariable(nameTwo) { 
 
    name = nameTwo; 
 
} 
 

 
setTimeout(function() { 
 
    $('#name').val('John'); 
 
}, 1000); 
 

 
$('button').click(function() { 
 
    $('#test').text(name); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input type="text" name="name" id="name" onchange="updateVariable(this.value)" /> 
 

 
<h1 id="test"></h1> 
 
<button>Test</button>

ответ

2

Вы почти имели его, вы должны выбрать значение элемента, и вы должны вызвать событие изменения также:

var name = $('#name').val(); 

function updateVariable(nameTwo) { 
    name = nameTwo; 
} 

setTimeout(function() { 
    $('#name').val('John').trigger('change'); 
}, 1000); 

$('button').click(function() { 
    $('#test').text(name); 
}); 
1

ваша функция не имеют s в конце, как звонок к нему

updateVariable vs updateVariables

+0

Это была опечатка на моем конце. –

Смежные вопросы