首页 > 解决方案 > ASP.net 撤消 preventDefault()

问题描述

我有一个带有提交按钮(创建)的页面。

添加另一个按钮(计算利润)时,表单提交会在用户点击它时启动。所以我在点击计算利润按钮时添加了 preventDefault() 。“计算利润”按钮具有调用此 javascript 代码的 onClick:

function NetProfit() {
            $('form').submit(function (ev) {
                ev.preventDefault();
            });
            document.getElementById('strRes').innerHTML = "";
            var pdata = new FormData();
            var price = document.getElementById('price').value;
            $.ajax({
                type: "POST",
                dataType: 'JSON',
                url: "/ExternalMerch/Product/NetProfitCalc",
                data: { price: price },
                success: function (data) {
                    var str = JSON.stringify(data).split(',');
                    for (i = 0; i < str.length; i++) {
                        document.getElementById('strRes').innerHTML = document.getElementById('strRes').innerHTML + str[i].replace('"', '').replace('"', '').replace(']', '').replace('[', '') + '</br>';
                    }
                },
                error: function (data) {

                }
            });
        }

现在当我点击计算利润时它工作正常,但是当用户完成填写页面详细信息并点击创建时,页面不会提交。我知道这是因为单击计算利润时的 preventDefault。单击创建时有没有办法撤消此操作并启动表单提交? 在此处输入图像描述

标签: asp.netasp.net-mvcasp.net-core

解决方案


如果您只想在点击创建按钮时提交表单,您可以尝试type="button"在计算利润按钮中设置,并$('form').submit(function (ev) {ev.preventDefault();});在函数中删除。NetProfit这是一个演示:

看法:

<form method="post">
    <div class="form-group">
        <label class="control-label">Product Name</label>
        <input class="form-control" />
    </div>
    <input type="button" value="Calculate Profit" onclick="NetProfit()" />
    <div class="form-group">
        <label class="control-label">Available Quantity</label>
        <input class="form-control" />
    </div>
    <input type="submit" value="Create"/>
</form>

js:

function NetProfit() {
            alert("Calculate Profit");
        }

结果: 在此处输入图像描述


推荐阅读