【问题标题】:How to use clickonce for html button [closed]如何将clickonce用于html按钮[关闭]
【发布时间】:2011-09-21 23:38:00
【问题描述】:

我尝试将此 javascript 用于 clcik 一次,但我无法获得结果 谁能告诉我这个脚本有什么问题

function clickOnce(btn, msg) {
// Test if we are doing a validation
//if (typeof (Page_ClientValidate) == 'function') {
    // if we are doing a validation, return if it's false
    //if (Page_ClientValidate() == false) { return false; }
//}

// Ensure that the button is not of type "submit"
if (btn.getAttribute('type') == 'button') {
    // The msg attibute is absolutely optional
    // msg will be the text of the button while it's disabled
    if (!msg || (msg = 'undefined')) { msg = 'Loading...'; }

    btn.value = msg;

    // The magic :D
    btn.disabled = true;
}

return true;
}

谁能告诉我这个脚本有什么问题

【问题讨论】:

    标签: javascript model-view-controller html


    【解决方案1】:

    您的第二个if 子句不检查msg 是否为undefined,但分配 undefined 给它。因此,msg 的最终值将始终为Loading...

    另外,nullundefined 已经由 ! 运算符处理,因此您只需要:

    if (!msg) {
        msg = "Loading...";
    }
    btn.value = msg;
    

    或者,如果您想利用 || 运算符的短路特性:

    btn.value = msg || "Loading...";
    

    【讨论】:

    • 这不是我想要的。我正在尝试在 mvc 中触发一个动作,并且运行的条件基于我在使用此脚本时单击了哪个按钮这个条件对我来说也更重要
    【解决方案2】:

    您是否使用浏览器中的开发人员工具对此进行了调试?它表现得好像函数没有像你想象的那样完成它的过程,所以 return true 永远不会被命中,并且某个地方会抛出一个错误。

    【讨论】:

    • 我无法追踪错误是否有任何其他 javascript 以便我可以在按钮禁用的情况下在我的按钮中显示请等待消息
    • 你总是可以抛出一些警报来查看 'msg' 和 'btn' 的值......如果这些值未定义,那么代码将出错并且不执行任何操作。你是如何调试 javascript 的?
    猜你喜欢
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 2011-10-21
    • 1970-01-01
    相关资源
    最近更新 更多