0

我有一个 aspx 页面(运行 .net 4 框架而不是 MVC),它有一个使用 href 的 mailto 并且还有一个 . 链接按钮可以正确触发后面的代码。如果我单击带有 mailto 的 href(它将使用正确的信息启动 Outlook),然后尝试单击链接按钮,则不会触发。渲染时的样子。

<input type="submit" name="ctl00$ContentPlaceHolder1$btnSave" value="Save Attendance" onclick="return checkDisableButton(this.id, 'PROCESSING');" id="ContentPlaceHolder1_btnSave" class="ButtonPrimary button" disabled="">

checkDisabledButton 代码

function checkDisableButton(btn, parmText, icon) {
var mbtn = $('#' + btn);
mbtn.addClass("buttonPad buttonProcessing button");
mbtn.val(parmText);};

我在 var mbtn 行放置了一个断点,单击 mailto 链接后它没有命中它。如果我加载页面并且不单击 mailto 链接,它会触发。

就这样你拥有它.. href 看起来像这样

<a id="ContentPlaceHolder1_hlMailto" href="mailto:a@a.com;%20b@b.com;%20?Subject=2846">Load email</a>

(我编辑了关于那个href的一些信息,所以我可能把它弄乱了)

我检查了单击 mailto 之前和之后的代码,它似乎没有改变。

无论如何..想知道是否有人有任何想法...谢谢香农

4

1 回答 1

0

不是说这是完美的方式..但想出了一些东西。我还有一些我认为不包含在单击后禁用按钮的代码,这样它就不会运行超过一次。这是与 mailto 有问题的代码。该代码看起来像这样

function DisableButtons() {
var inputs = document.getElementsByTagName("INPUT");
for (var i in inputs) {
    if (inputs[i].type == "button" || inputs[i].type == "submit") {
        inputs[i].disabled = true;
    }
}

} window.onbeforeunload = 禁用按钮;

我注释掉了该代码并将此代码添加到 checkDisableButton 函数

 $(mbtn).one('click', function (event) {
            event.preventDefault();
            //do something 
            $(this).prop('disabled', true);

        })

这使得按钮只能被点击一次。它似乎正在工作。谢谢香农

于 2015-10-15T15:34:43.903 回答