aspx页面点击mailto href,其他按钮不会触发

时间:2015-10-09 17:46:58

标签: asp.net href aspbutton

我有一个aspx页面(运行.net 4 framwork 而不是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被点击之前和之后的代码,它似乎没有改变。

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

1 个答案:

答案 0 :(得分: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 = DisableButtons;

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

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

        })

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