2016-12-06 2 views
1

Как вызвать функцию javascript, когда значение в textarea было изменено?Как вызвать функцию javascript, когда значение в textarea было изменено?

При заполнении данных в textarea id="yyyy", textarea id="xxxx" также изменит значение. Эта функция работает хорошо.

Когда textarea id="xxxx" значение изменения, я хочу вызвать функцию check2, как я могу это сделать?

пожалуйста, не изменить код в функции check и id="yyyy"

https://jsfiddle.net/9b6h897d/3/

<textarea id="yyyy" onkeyup="check(this.value)"></textarea> 
<textarea id="xxxx" onchange="check2(this.value)" ></textarea> 

<script> 
function check(value){ 
    document.getElementById("xxxx").value = value; 
} 
function check2(value){ 
    alert(value); 
} 
</script> 
+0

Возможный дубликат [Как я могу связать с событием изменение текстового поля в JQuery?] (Http://stackoverflow.com/questions/11338592/how-can-i- bind-to-the-change-event-of-a-textarea-in-jquery) –

+0

выглядит как скрипка работает, не уверен, что вы ищете – Pabs123

+0

Pabs123 - при заполнении данных в textarea 'id =" yyyy "' then textarea 'id =" xxxx "' тоже изменится. ОК ? , а затем я хочу позвонить функции 'check2' –

ответ

0

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

Это всего лишь код sudo, который я списал с телефона, поэтому у вас могут быть небольшие ошибки, которые вам нужно исправить.

var userEdit = true; 

function(ta) { 
    if (ta.Id == 'xxx') 
    { 
    // Do code for xxx text area 
    userEdit = false; 
    // update yyy via code 
    userEdit = true; 
    } else if (ta.Id == 'yyy' && userEdit) { 
    // Do code for yyy text area change only when a user edits it 
    } else if (ta.Id == 'yyy' && !userEdit) { 
    // Do code for yyy text area change only when your code edits it 
    } 
} 

Вы можете также использовать ONBLUR вместо OnChange, ONBLUR вызывается, когда пользователь изменяет фокус из объекта. Например, после того, как они вводят ввод, а затем вводят вкладку или нажимают на другой ввод или кнопку, он будет запущен.

+0

Не могли бы вы показать мне пример кода? –

0

Обновлено скрипка: https://jsfiddle.net/9b6h897d/6/

При изменении значения в check вызове метода check2 как:

function check(value){ 
    document.getElementById("xxxx").value = value; 
    check2(value). 
} 

я думаю, что лучше использовать oninput если вы хотите, чтобы отслеживать изменения пользователя.

, если вы не хотите, чтобы изменить содержание check() вы должны вызвать как функцию в oninput:

<textarea id="yyyy" oninput="check(this.value);check2(this.value)"></textarea> 

Новой скрипка: https://jsfiddle.net/9b6h897d/9/

Надеется, что это поможет.

+0

нет, пожалуйста, не редактируйте код в функции 'check' –

+0

Проверьте мое обновление PLZ. –

+0

и, пожалуйста, не редактируйте код в 'id =" yyyy "' слишком T__T вызвать код в функции 'check' и' id = "yyyy" 'из моего контроля T__T –

0

Стандартные события для <textarea> - это клавиши, keydown или keyup. Чтобы сделать то, что вы хотите, вам придется вызвать onchange в одной из функций. Это имеет смысл в первой функции, называемой check.

document.getElementById("textarea2").addEventListener("change", function(event) { 
 
    console.log("Textarea two was changed."); 
 
}); 
 

 
function check(element) { 
 
    var textarea2 = document.getElementById("textarea2"), 
 
    event = new Event('change'); 
 
    textarea2.value = element.value; 
 
    textarea2.dispatchEvent(event); 
 
};
<textarea id="textarea1" onkeyup="check(this);"></textarea> 
 
<textarea id="textarea2" onkeyup="check(this);"></textarea>

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