我正在开发一个ASP.NET MVC C#应用程序,我正在尝试编写一个简单的单击事件,该事件会在单击表单中的提交按钮时触发。
问题是$('。class')选择器似乎对我的@ Html.BeginForm(yada yada yada){}子句中的所有内容视而不见。
$(document).ready()中的警报将会触发,因此我知道jQuery已加载并正常工作,但$('。myButton')中的警报.Click()将不会触发。
这是我的.cshtml
@using (Html.BeginForm("ManageProducts", "Admin", FormMethod.Post, new { id = "productForm" }))
{
...
<input type="submit" value="Update" class="add btn btn-default" />
}
这是我的jQuery
@section Scripts{
<script>
$(document).ready(function () {
$('.add').click(function (e) {
alert('Hi');
$('input:text').val('');
});
});
</script>
}
我尝试过的事情:
很抱歉,如果这似乎是重复的,但即使我实际上找到了几个同样问题的帖子,“正确”答案总是上面列表中的第2或第4项,但那些不修复我的问题。
感谢您的任何意见!
答案 0 :(得分:0)
就像现在一样,当点击该输入时,如果触发jquery,表单将尝试提交到Admin控制器的ManageProducts操作。一个选项是在提交而不是控制器操作上触发逻辑。像这样:
@using (Html.BeginForm(new { onsubmit = "return alertStuff();" }))
<script type="text/javascript">
function alertStuff() {
alert('Hi');
}
</script>
我也很幸运使用了jquery的on submit函数。这样的事情之前对我有用:
<script type="text/javascript">
$(function() {
$("#productForm").on("submit", function () {
alert('Hi');
if (youDontWantToSubmitForm) {
return false;
}
});
});
</script>