2014-07-16 61 views
1

我有一个取消按钮在我的MVC 5视图,当点击时,我想隐藏/显示几个DIV,但我也不希望表单提交。停止提交按钮从提交使用JQuery

这是取消按钮。

<input type="submit" id="btnCancelConsultant" name="btnCancelConsultant" class="btn btn-default" value="Cancel Update"> 

我有这个JQuery代码,应该在用户点击取消按钮时调用,但是它根本不会被调用。我知道这是因为警报提示不会发生。相反,表单被提交,这是我不想发生的事情。

$("btnCancelConsultant").click(function() { 

    alert("Cancel Called"); 
    //Show Add button, hide Update/Cancel button 
    $("#AddConsultant").hide('fast'); 
    $("#UpdateConsultant").show('fast'); 

    e.preventDefault(); // prevents default 
    //return false; 

}); 

我也试图与

$("btnCancelConsultant").on('click', function() { 

取代我jQuery函数的第一行然而,这也仍然提交表单。

我不明白为什么每当我已经使用这两种

e.preventDefault(); 
return false; 

要停止从发生的提交尝试的形式提交。

任何人都可以请帮助我吗?

谢谢。

+3

缺少''#'在$( “btnCancelConsultant”)'。以'submit'事件形式阻止它。 – Satpal

+0

它是'$(“#btnCancelConsultant”)',如果你打算使用事件参数,你必须实际将它添加到函数 – adeneo

+0

你是否尝试将输入类型从“submit”更改为“button” “? – ovunccetin

回答

1

您应该使用type="button"而不是type="submit"

使用,

<input type="button" id="btnCancelConsultant" name="btnCancelConsultant" class="btn btn-default" value="Cancel Update"> 

JS

$("#btnCancelConsultant").click(function (e) { //Added event argument 
    //Your code 
}); 
1

您的活动改成这样,接受事件参数在这种情况下e

$("#btnCancelConsultant").click(function (e) { 

    alert("Cancel Called"); 

    $("#AddConsultant").hide('fast'); 
    $("#UpdateConsultant").show('fast'); 

    e.preventDefault(); // prevents default 


}); 
1
$("#btnCancelConsultant").click(function() { 

alert("Cancel Called"); 
//Show Add button, hide Update/Cancel button 
$("#AddConsultant").hide('fast'); 
$("#UpdateConsultant").show('fast'); 

e.preventDefault(); // prevents default 
//return false; 

});

1

这是应该的:

$("#btnCancelConsultant").click(function (e) { // <-- don't forget this one 
    // your code ... 

    e.preventDefault(); 
}); 
1

也许尝试使用上提交,而不是在点击

$("#btnCancelConsultant").submit(function(event) { 
    event.preventDefault(); 
    return false; 
}); 
1

我相信你错过了从代码的e。这会将事件传递给变量e的点击功能,以便您可以使用e.preventDefault()停止默认设置。

您还错过了选择器中的#。您需要使用此名称来搜索ID为“btnCancelConsultant”的元素,而不是该元素。所以相反,你需要$("#btnCancelConsultant")

所以,你的代码将变成:

$("#btnCancelConsultant").click(function (e) { 

    alert("Cancel Called"); 
    //Show Add button, hide Update/Cancel button 
    $("#AddConsultant").hide('fast'); 
    $("#UpdateConsultant").show('fast'); 

    e.preventDefault(); // prevents default 
});