CFM
<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中的文本从“default”更改为“anothervalue”。
这不符合我的想法,我想知道原因。
答案 0 :(得分: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');
}