我在MVC 3(Razor)项目中有以下代码:
<div class="user_info" id="id_user_info">
<script type="text/ecmascript" >
$(function () {
$('#buttonClear').live('submit', function (e) { return false; });
$('#buttonClear').bind('click', function () {
$('username').value = "";
$('password').value = "";
});
</script>
@using (Html.BeginForm("Login", "Account", FormMethod.Post, new { id = "loginForm" }))
{
<label for="username">Enter:</label>
<input name="username" id="username" type="text" value="" /><br />
<input name="password" id="password" type="password" value="" /><br />
<input name="rememberMe" id="rememberMe" type="checkbox" value="true" />
<label for="rememberMe">Remember me?</label><br />
<input id="buttonLogin" type='submit' value="Login" />
<input id="buttonClear" type='submit' value="Clear" />
}
</div>
由于样式,我需要将“buttonClear保持为类型sumbit,但我需要禁用/避免/阻止它在按下后重新加载页面。
有没有办法从“buttonClear”中删除“提交事件”?
由于 里卡多
答案 0 :(得分:8)
$('#buttonClear').click(function(e){
// do whatever actions you need here
e.preventDefault();
});
答案 1 :(得分:3)
我建议删除您绑定到submit
事件的处理程序,而不是在preventDefault
事件处理程序中使用click
:
$('#buttonClear').bind('click', function (e) {
e.preventDefault();
$('username').value = "";
$('password').value = "";
});
您尝试的submit
事件方法无效,因为submit
事件只能绑定到form
元素,而不是提交表单的按钮。
答案 2 :(得分:2)
尝试e.preventDefault();
$('#buttonClear').bind('click', function (e) {
e.preventDefault();
$('username').value = "";
$('password').value = "";
});
答案 3 :(得分:1)
虽然我发现这篇文章有点老了,但我也想提供这个答案。
<input id="buttonClear" type='submit' value="Clear" />
通常,您不会为一个表单提供多个提交按钮。此外,由于您实际上并不想要提交功能,因此使用此类型并不准确。最后,您正在寻找“清除”或“重置”功能。你的按钮应该是:
<input id="buttonClear" type="reset" value="Clear" />
答案 4 :(得分:0)
为什么不
$('#buttonClear').click(function() {
return false;
});