Javascript onsubmit需要重新加载页面

Javascript onsubmit需要重新加载页面,javascript,coldfusion,Javascript,Coldfusion,我在coldfusion页面上有一个表单。点击正在插入表格的save按钮后,我需要在选择框中用表格的新值重新加载页面。虽然提交后页面正在刷新,但我无法在下拉列表中看到新插入的值。只有手动刷新页面后,我才能看到它。我有下面的代码 <script> function confirm_insert() { var ok = confirm("Are you sure you want to save the changes?");

我在coldfusion页面上有一个表单。点击正在插入表格的save按钮后,我需要在选择框中用表格的新值重新加载页面。虽然提交后页面正在刷新,但我无法在下拉列表中看到新插入的值。只有手动刷新页面后,我才能看到它。我有下面的代码

  <script>
        function confirm_insert()
        {
            var ok = confirm("Are you sure you want to save the changes?");
            if (ok)
            {
                document.myform.submit();   
                return true;
            }
            else
            {
                return false;
            } 
        }
    </script>  

<form name="myform" action="bsc_lookup_number_add.cfm" method="post" >
           <td><input type="text" <cfif      isDefined('page.select_Main_Group')>value="#page.select_Main_Group#"</cfif>></td>
           <td><input type="text" <cfif isDefined('page.select_Sub_Group')>value="#page.select_Sub_Group#"</cfif>></td>
          <td><input name="newfirstchars" type="text" value="" maxlength="3"></td>

    <input type="submit" class="button" name="saverecord" id="saverecord"  style="width:100px" value="Save Record" onClick="return confirm_insert();">

            <cfquery name="first3" datasource="mbtran">
            select * from (
       select cast((substr(A.LABORLEVELNAME2, 1, 3)) as varchar2(5 byte)) first_3_pos
        from tkcsowner.VP_LABORACCOUNT a  
         <cfif isDefined('page.select_Sub_Group')>         
        where substr(A.LABORLEVELNAME1, 1, 5) || substr(A.LABORLEVELNAME2, 4, 2) = ('#page.select_Main_Group#' || '#page.select_Sub_Group#')
        </cfif>
        union
        select  A.FIRST_3_CHARS_IN_POSITION first_3_pos
        from kronos_if.FIRST_3_CHARS_IN_POSITION a    
         <cfif isDefined('page.select_Sub_Group')>     
        where A.DEPTID || A.UNION_CD = ('#page.select_Main_Group#' || '#page.select_Sub_Group#') 
        </cfif>
        )                          
        order by first_3_pos        
        </cfquery>

                <cfif isDefined('page.select_Sub_Group')>
                <td align="center">
                <select name="first3" id="first3" required="yes"        onchange="this.form.submit()">
             <option>Select</option>
             <cfloop query="first3">
                 <option value="#first_3_pos#" <cfif             isDefined('form.first3')><cfif form.first3 eq "#first_3_pos#">selected</cfif>       </cfif>>#first_3_pos#</option>
             </cfloop>
            </select></td>      

       </cfif>


         <cfif isdefined ("form.saverecord") and isdefined("form.newfirstchars")>

 <cfquery name="saverec" datasource="mbtran">

               insert INTO kronos_if.FIRST_3_CHARS_IN_POSITION
              (deptid,union_cd, first_3_chars_in_position,effdt)
                      values('#page.select_Main_Group#','#page.select_Sub_Group#','#FORM.newfirstchars#',sysdate)

</cfquery>               


        </cfif>

</form>
请给我一些建议。谢谢


插入记录的查询位于用于填充下拉列表的查询之后。您需要移动此代码

<cfif isdefined ("form.saverecord") and isdefined("form.newfirstchars")>

<cfquery name="saverec" datasource="mbtran">
    insert INTO kronos_if.FIRST_3_CHARS_IN_POSITION
    (deptid,union_cd, first_3_chars_in_position,effdt)
    values ('#page.select_Main_Group#','#page.select_Sub_Group#','#FORM.newfirstchars#',sysdate)

</cfquery>               


</cfif>
在选择查询的上方


您还需要研究使用cfqueryparam-

您需要显示更多的代码。上面的内容只是一个带有javascript消息的表单中的按钮。您是否有任何正在插入的代码?显示您认为应该插入的内容的代码如何?我已经编辑了代码,名为first3的选择框未显示表单提交后的插入值。感谢验证记录是否已添加。在表中无法看到新的插入值请考虑代码正在执行的操作,这完全有意义。在查询表之后,您正在运行insert。因此,结果不可能包含新记录,因为当您运行select语句时,它甚至还不存在。您还希望研究使用structKeyExists而不是IsDefined与问题无关,但是onsubmit=confirm'real'消除了对javascript函数的需要。