加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 表单和JSON调用中的表单

发布时间:2020-12-15 22:33:58 所属栏目:asp.Net 来源:网络整理
导读:在我的页面中,我有一个表单: form method="post" id="confirm-order-form" name="confirm-order-form" 在表单内部我写了一些脚本来进行JSON调用: script type="text/javascript"xsl:text disable-output-escaping="yes"![CDATA[ $(function() { $('#submit
在我的页面中,我有一个表单:
<form method="post" id="confirm-order-form" name="confirm-order-form">

在表单内部我写了一些脚本来进行JSON调用:

<script type="text/javascript"><xsl:text disable-output-escaping="yes"><![CDATA[
    $(function() {
        $('#submit').click(function() {
             if ($('#nlapproved').attr('checked')) {
                newsletter();
            }
        });

        function newsletter()
        {
            $form = $('<form action="http://mydomain.createsend.com/t/j/s/jtes/" method="post" id="subForm" />');
            $form.append('<input type="hidden" name="cm-name" id="hidName" />');
            $form.append('<input type="hidden" name="cm-jtes-jtes" id="hidEmail" />');
            $form.append('<input type="hidden" name="cm-fo-pikty" id="hidPrivateBusiness" />');

            $form
                .find("#hidName")
                .val(']]></xsl:text><xsl:value-of select="$context//checkoutinformation/info[key='name']/value" disable-output-escaping="yes"/><xsl:text disable-output-escaping="yes"><![CDATA[');

            $form
                .find("#hidEmail")
                .val(']]></xsl:text><xsl:value-of select="$context//checkoutinformation/info[key='email']/value" disable-output-escaping="yes"/><xsl:text disable-output-escaping="yes"><![CDATA[');

            $form
                .find("#hidPrivateBusiness")
                .val(']]></xsl:text><xsl:value-of select="$acctype"/><xsl:text disable-output-escaping="yes"><![CDATA[');

            $.getJSON(
                $($form).get(0).action + "?callback=?",$($form).serialize(),function (data) {
                    if (data.Status === 400) {
                        alert("Error: " + data.Message);
                    } else { 
                        // 200
                        alert("Success: " + data.Message);
                    }
                }
            );
        }
    });
    ]]>
    </xsl:text>
</script>

我的问题是,当外部表单存在时,这个东西不起作用 – 否则代码工作正常.
注意:我正在将此页面重定向到外部表单后面的另一个物理服务器,并且我的第一个表单中有很多其他控件,所以我不能简单地避免这种情况.
谁能帮忙?

解决方法

实际表单正在提交.不要那么做:
$("#confirm-order-form").on('submit',function (e) { e.preventDefault(); });

编辑:提交ajax,然后正常格式:

...ajax.done(function () {
   $("#confirm-order-form").off('submit').trigger('submit');
});

ajax成功完成后,取消对表单提交的预防,并触发提交.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读