繁体   English   中英

通过AJAX提交表单输入更改的Coldbox RC范围并返回字符串以显示在页面上

[英]Submitting Coldbox RC scope on form input change via AJAX and returning string to display on page

每次更改选择框值时,我都需要通过AJAX传递表单变量,并从AJAX调用获取返回的字符串以显示在页面上。 情况如下:

我构建了一个表单,该表单是由用户为一组合规性规则动态构建的。 这使用户可以有多个选择框来生成如下逻辑语句:

(
  ( 6779 AND 10852 AND 10845 )
  AND 
  (
    ( 8260 AND 8258 ) 
  )
)
OR
( 6780 OR 10845 OR 8258 OR 12893 )

我编写了一个函数,该函数在提交表单后以字符串形式返回此逻辑语句,但是想在提交之前在表单页面上动态填充div(#logicblock),以便用户可以在提交表单之前验证逻辑信息进入我们的数据库。

我尝试使用以下内容:

 ('##logicblock').load("#getmodel('model.compliance').BuildLogic(rc)#", function(response){
     $('##logicblock').html(response);
 })

...但这无法将RC范围正确地传递到我的模型中。 我进行了搜索,找不到一种对我有意义的方法,该方法可以将整个表单范围发送到一种返回值以显示在页面上的方法中。

我明白了。 因为表单字段是动态生成的,所以我发现我无法使用$('select').change()事件来调用该方法,因此我编写了一个处理程序方法来生成数据并序列化表单以传递给处理者。 我能够使用以下命令获得所需的响应:

function updateLogicBlock(){
    var serialform = $('form').serialize();
    $.get("#event.buildLink('handler.buildComplianceLogic')#?" + serialform, 
      function(data) {
        $('##logicblock').html(data);
    });
};

然后我简单地添加了onChange="updateLogicBlock();" 到表单上的每个选择框。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM