2011-07-15 78 views
0

如果標題不太清楚,但我不知道如何更精確地進行操作,我很抱歉。如何從其他函數調用未知的「onChange」函數

我有這樣的代碼:

<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進行更改。

回答

0

沒關係。

我用regEx加載參數並從p1函數內調用函數p2。

該調用看起來像這樣。

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

其中tconv,idconv和camconv是regEx查詢的結果。

0

問題是onChange事件不會在您執行document.getElementById('f1').value = 'Isaac';時觸發。所以做出以下這些改變,你應該很好:

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

謝謝@Ram。這是我需要做的,但我不知道函數的名稱或參數。查看編輯過的帖子。我需要一種動態的方式來加載這些功能。 – Memochipan