如何调用未知的“onChange”来自其他函数的函数

发布于 2024-11-24 10:00:25 字数 1641 浏览 2 评论 0原文

如果标题不太清楚,我很抱歉,但我不知道如何做得更精确。

我有这样的代码:

<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>

当我在 f2 中写入内容时,我需要在 f1 字段中显示“艾萨克·牛顿”。我只能修改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 个不同类型的字段:选择、文本和文本区域。

有没有办法从我的 onchange 函数加载这个动态代码?


我可以访问字段的名称,所以我想做一些类似的事情:

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

有可能吗?我不知道正确的语法。


我还尝试使用 focus()、click()、select() 和 Blur() 方法,但它们不会向 Javascript 传达已进行更改的信息。

I'm sorry if the title is not too clear but I didn't know how to do it more precise.

I have this code:

<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>

I need to show "Isaac Newton" in the f1 field when write something in f2. I only can modify the p1 function. I don't know the name of the p1 functions, even it is changed every time the page is loaded.

Thanks.


Thanks for the answer. The real input fields are like this:

<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]');">

And I have 10 fields of different types: select, text and textarea.

Is there a way to load this dynamic code, from my onchange function?


I can access the name of the fields so I want to do something like:

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

It is possible? I don't know the correct syntax.


I also tried with the focus(),click(),select() and blur() methods, but they don't communicate Javascript that a change was made.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风透绣罗衣 2024-12-01 10:00:25

问题是当您执行 document.getElementById('f1').value = 'Isaac'; 时,onChange 事件不会触发。因此,进行以下更改,您应该会很好:

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

The problem is the onChange event does not fire when you do document.getElementById('f1').value = 'Isaac';. So make these following changes and you should be good:

<input type="text" id="f1" name="f1">
<input type="text" id="f2" name="f2" onChange="p1();p2()">
金兰素衣 2024-12-01 10:00:25

没关系。

我使用 regEx 加载参数并从 p1 函数内部调用函数 p2。

通话看起来像这样。

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

其中 tconv、idconv 和 camconv 是 regEx 查询的结果。

No matters.

I used regEx to load the parameters and call the function p2 from inside the p1 function.

The call looks like this.

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

Where tconv, idconv, and camconv are the results of the regEx queries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文