【问题标题】:How to save form input into session variable using ColdFusion?如何使用 ColdFusion 将表单输入保存到会话变量中?
【发布时间】:2016-11-09 09:53:24
【问题描述】:

我正在尝试使用 ColdFusion 将表单输入保存到会话变量中。我尝试了许多在网站上发布的方法,但没有一种方法适用于我的代码。有人可以指导我吗?

以下是我的完整代码。

<html>
    <head>
        <link rel="STYLESHEET" href="css/iesync2.css" type="text/css">
        <link rel="STYLESHEET" href="css/iesync_style(awps).css" type="text/css">
        <!--- <link rel="stylesheet" href="css/bootstrap-3.3.6-dist/js/jquery-ui-1.8.10.custom.css" /> --->
        <link href="css/bootstrap-3.3.6-dist/js/bootstrap.min.css" rel="stylesheet">
        <script src="css/bootstrap-3.3.6-dist/js/jquery-1.11.3.min.js"></script>
        <!--- <script src="css/bootstrap-3.3.6-dist/js/jquery-migrate-1.2.1.min.js"></script>
        <script src="js/iesync_popup.js"></script> --->
        <script language="javascript" src="css/bootstrap-3.3.6-dist/js/bootstrap.min.js"></script>
        <cfoutput>
            <script language="JavaScript">
                function check() {
                    var f = document.frmAddModel;
                    if (f.brandName.value.length == 0) {
                        alert("Please Insert Brand Name");
                        f.brandName.focus();
                        return;
                    } else if (f.brandName.value.length > 0){
                        /*window.close();*/
                    }
                }
            </script>
        </cfoutput>
    </head>
    <body>
        <cfoutput>
        <cfif structKeyExists(form,"submit")>
            <cfset session.brandName = "#form.brandName#">
        </cfif>
        <center>
            <div>
                <form name="frmAddModel" action="" method="post" onSubmit="">
                <br />
                <table border="0" cellpadding="2" cellspacing="2" width="50%">
                <tr>
                    <td colspan="2" align="left" class="cssSubTitleC">Model</td>
                </tr>
                <tr class="cssLine2L">
                    <td align="left">Brand Code (optional)</td>
                    <td><input type="Text" name="brandcode" size="25" class="cssForm" maxlength="10"></td>
                </tr>
                <tr class="cssLine2L">
                    <td align="left" class="cssLine2L">Brand Name<font class="cssRequired">*</font></td>
                    <td><input type="Text" name="brandName" size="25" class="cssForm" maxlength="10"></td>
                </tr>
                </table>

                <table border="0" width="50%" style="padding: 10px;">
                <tr>
                    <td class="cssButtonLine" colspan="2">
                        <input type="button" name="submit" class="btn btn-primary" onclick="check()" value= "Save">
                    </td>
                </tr>
                </table>
                </form>
            </div>
        </center>
        </cfoutput>
    </body>
</html>

【问题讨论】:

  • body 标签上方的所有内容都无关紧要。那个,水平滚动条阻止我阅读其他内容。
  • 注意会话范围。值可能会因您可能未预料到的用户操作而发生变化。

标签: javascript session coldfusion


【解决方案1】:

您永远不会在 JavaScript 中提交表单。在表单中添加id,在函数中添加$("#form-id").submit();,然后重试。

在您的表单中添加id

<form name="frmAddModel" id="frmAddModel" action="" method="post" onSubmit="">

然后将此$("#frmAddModel").submit(); 添加到您的函数中:

<script language="JavaScript">
    function check() {
        var f = document.frmAddModel;
        if (f.brandName.value.length == 0) {
            alert("Please Insert Brand Name");
            f.brandName.focus();
            return;
        } else if (f.brandName.value.length > 0){
            $("##frmAddModel").submit();
            /*window.close();*/
        }
    }
</script>

注意:您需要使用双井号标签 ##,因为您的 JavaScript 函数当前由 cfoutput 标签包装。虽然按照目前的说法,这似乎没有必要。

【讨论】:

    【解决方案2】:

    将字段类型从“按钮”更改为“提交”:

    <input type="submit" name="submit" class="btn btn-primary" onclick="check()" value= "Save">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      相关资源
      最近更新 更多