使用javascript更改cfform值以进行动态绑定输出

时间:2011-10-04 18:03:40

标签: coldfusion coldfusion-9

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

这不符合我的想法,我想知道原因。

1 个答案:

答案 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');
}