2011-10-04 60 views
1

CFM更改CFFORM值用JavaScript動態綁定輸出

<html> 
<head> 
<title>Test Page</title> 
<script type="text/javascript"> 
    function toggleV(value){ 
     document.getElementById('blah').value = value; 
    } 
</script> 
</head> 
<body> 
<cfform name="coolfrm"> 
    <cfinput type="hidden" name="blah" id="blah" value="default"> 
    <a onclick="toggleV('anothervalue')" style="cursor:pointer;">click Me</a> 
</cfform> 

<cfdiv bind="cfc:TestCFC.func({coolfrm:blah})"></cfdiv> 

</body> 
</html> 

CFC

<cfcomponent> 
    <cfscript> 
     remote function func(simpleString){ 
      return simpleString; 
     } 
    </cfscript> 
</cfcomponent> 

我希望這段代碼做的是在CFDIV文字改變,從「默認」爲「anothervalue」 。

這不行,我認爲它應該,我想知道爲什麼。

回答

2

根據定義從:http://www.w3.org/TR/html4/interact/scripts.html

onChange事件時的控制失去輸入焦點並且由於獲得焦點其 值已被修改發生。

當您以編程方式修改該字段時,更改事件不能正確觸發。

通過稍微改變JavaScript函數解決這個問題:

function toggleV(value){ 
    document.getElementById('blah').value = value; 
    ColdFusion.Event.callBindHandlers('blah',null,'change'); 
} 
+0

真棒,這就是我一直在尋找。謝謝。 – John

+0

Credit歸CFJediMaster所有:http://www.coldfusionjedi.com/index.cfm/2009/7/8/Forcing-ColdFusion-to-recognize-changes-made-to-data-used-for-Ajax -Bindings –