0

在此处输入图像描述

我有几个问题 - 选择引用表值时加载的第一个约束。

ISSUE 1 - 最后两个选择框名称 -Constraint on 应该从第一个约束 on.clone 选项。但不应该在前一个选择框中具有选定的选项。怎么做?

ISSUE 2 - 我的选择框在 javascript 调用中加载,但我必须为此添加警报,为什么?人口二选择的代码 -

function LoadSelects()
{
 $("#columns2 option").each(function() {
        $(this).remove();
    });
 $("#columns3 option").each(function() {
        $(this).remove();
    });
   alert("i m called");  ///it does not load the selects if i remove this****why?
 $("#columns option").clone().appendTo("#columns2");
  $("#columns option").clone().appendTo("#columns3");
 }  
}

人口优先选择的控制器代码-

 def getColumns = {
    def columns = GGWSchemaXref.executeQuery("select distinct p.columnname     from GGWSchemaXref p where p.tablename=:table and p.dbname = 'IVR_GUARDIAN'",[table:params.tableCombo])
    render(template:"selectTemplate", model: [ columnList: columns ])

}

GSP页面代码在这里-

  <tr> <td>Reference Table:</td>
   <td><g:select name="tableCombo"
        noSelection="${['':message(code:'Select Table')]}"
        from="${result}" value="${tableName }"        onchange="${remoteFunction(action:'getColumns', update:'columns', params:'\'tableCombo=\'    + this.value', OnComplete = 'LoadSelects();')}"/> </td></tr>
 <tr id ="cons"><td nowrap>Constraint On:</td>
    <td nowrap><g:select name="columns" from="[]" /></td>
    <td nowrap>Constraint Value:</td>
    <td nowrap><g:textField name="columnValue" value="${enterVal }" />  
</tr>
 <tr id ="cons2"><td nowrap>Constraint On:</td>
    <td nowrap><g:select name="columns2" from="[]" /></td>
    <td nowrap>Constraint Value:</td>
    <td nowrap><g:textField name="columnValue2" value="${enterVal2 }" />  
</tr> 
 <tr id ="cons3"><td nowrap>Constraint On:</td>
    <td nowrap><g:select name="columns3" from="[]" /></td>
    <td nowrap>Constraint Value:</td>
    <td nowrap><g:textField name="columnValue3" value="${enterVal3 }" />  
</tr>     

问题 3-我需要在搜索后保留选择和输入的值(回发)。

请帮忙怎么办?

谢谢

4

1 回答 1

0

AJAX 中的第一个“A”表示“异步”。您需要LoadSelects()在 ajax 的成功回调中执行

您可以将函数简化为:

function LoadSelects(){

    $("#columns2, #columns3").html( $("#columns").html()).val('') ;

 }

这会将选项从#columns其他两个选择复制并取消选择我相信这是您所要求的。

在上面的代码中使用将从选项$('select').val('')中删除selected属性

编辑 如果each您用于选择的原因是由于有多个具有相同 ID 的 ID,则您会遇到问题,因为 ID 必须是唯一的。如果是这种情况,则需要将代码重构为一行内的遍历

编辑#2 AJAX 成功

jQuery.ajax({
    type: 'POST',
    data: 'tableCombo=' + this.value,
    url: '/GryphonMonitor/load/getColumns',

    success: function(data, textStatus) {‌

        /*  this is callback when all data has been received*/      

        jQuery('#columns').html(data);
         LoadSelects();
    },
    error: function(XMLHttpRequest, textStatus, ‌errorThrown) {}
})
于 2012-03-27T20:52:34.017 回答