Как вызвать неизвестную функцию onChange из другой функции - PullRequest
0 голосов
/ 16 июля 2011

Извините, если название не слишком ясное, но я не знал, как это сделать более точно.

У меня есть этот код:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Test</title>
<script type="text/javascript">
function p1() {
    document.getElementById('f1').value = 'Isaac';
}
function p2() {
    x=document.getElementById('f1');
    x.value += ' Newton';
}
</script>
</head>
<body>
<form action="" method="get">
<input type="text" id="f1" name="f1" onChange="p2()">
<input type="text" id="f2" name="f2" onChange="p1()">
<input type="submit" value=">">
</form>
</body>
</html>

Мне нужно показать «Исаака Ньютона» в поле f1 при записи чего-либо в f2. Я могу только изменить функцию p1. Я не знаю названия функций p1, даже оно меняется каждый раз при загрузке страницы.

Спасибо.


Спасибо за ответ. Реальные поля ввода выглядят так:

<input type="text" id="tceforms-textfield-4e20ac55d3700" class="formField tceforms-textfield" name="data[tx_oriconvocatorias_publicadas][NEW4e20ac55cdc8f][cnom]_hr" value="" style="width: 460px; " maxlength="255" onchange="typo3form.fieldGet('data[tx_oriconvocatorias_publicadas][NEW4e20ac55cdc8f][cnom]','required,trim,tx_oriconvocatorias_autoLlenar','',1,'');TBE_EDITOR.fieldChanged('tx_oriconvocatorias_publicadas','NEW4e20ac55cdc8f','cnom','data[tx_oriconvocatorias_publicadas][NEW4e20ac55cdc8f][cnom]');">

И у меня есть 10 полей разных типов: select, text и textarea.

Есть ли способ загрузить этот динамический код из моей функции onchange?


Я могу получить доступ к названию полей, поэтому я хочу сделать что-то вроде:

function p1() {
code + name.Onchange;
}

Это возможно? Я не знаю правильный синтаксис.


Я также пытался с помощью методов focus(),click(),select() and blur(), но они не сообщают Javascript о том, что было внесено изменение.

Ответы [ 2 ]

0 голосов
/ 16 июля 2011

Не имеет значения.

Я использовал regEx для загрузки параметров и вызова функции p2 из функции p1.

Вызов выглядит следующим образом.

function p1(){ 
//... 
typo3form.fieldGet('data['+tconv+']['+idconv+']['+camconv[c]+']','','',1,'');
TBE_EDITOR.fieldChanged(tconv,idconv,camconv[c]); 
//... 
}

Где tconv, idconv и camconv являются результатами запросов regEx.

0 голосов
/ 16 июля 2011

Проблема в том, что событие onChange не срабатывает, когда вы делаете document.getElementById('f1').value = 'Isaac';.Поэтому внесите следующие изменения, и вы должны быть хороши:

<input type="text" id="f1" name="f1">
<input type="text" id="f2" name="f2" onChange="p1();p2()">
...