如何在JavaScript中取消按钮单击事件?

如何在JavaScript中取消按钮单击事件?,javascript,jquery,Javascript,Jquery,我尝试了两种不同的方法: $(document).ready(function() { $('input[type=button]').on('click', function(evt){ if ($(this).val() == 'Close') return true; var totalHours = 999; // here I am computing a total number of hours but that is i

我尝试了两种不同的方法:

$(document).ready(function()
{
    $('input[type=button]').on('click', function(evt){
        if ($(this).val() == 'Close')
          return true;
        var totalHours = 999; // here I am computing a total number of hours but that is irrelevant to my question
        var reportedTotalHours = parseFloat($("#TotalHours").text());
        var difference = Math.abs(totalHours - reportedTotalHours);
        if (difference >= 0.25) // discrepancy must be less than a quarter hour
        {
          alert("Total of hours for each activity must equal " + reportedTotalHours + ".");
          evt.preventDefault();
          return false;
        }
        return true;
    });
});

返回false
应该取消按钮单击,正如
evt.preventDefault()一样,但它们都不适合我。单击按钮时发生的情况是表单已提交,但我想阻止表单提交,直到小时数差异小于0.25。

尝试将输入[type=button]更改为按钮标记。然后在条件合适时在onclick回调中提交表单


在某些浏览器中,如果没有input[type=submit]元素,input[type=button]元素将提交表单。

您确定这是提交表单的按钮吗
type=“button”
通常不提交表单。通常是
type=“submit”
…如果要阻止表单提交,请改为针对表单的
submit
事件。这样,您就可以执行
preventDefault()
来停止表单提交;我也有一个问题!至于按钮,是的,它确实是
type='button'
;我不知道为什么。它在提交表单的
onclick
事件中附加了一个脚本。谁知道呢……我可以将按钮更改为
type='submit
”,但它是动态生成的,我不确定这是否会破坏其他页面……jquery过度使用的典型案例。试试这个整洁的新图书馆吧