C# 使用ajax加载局部视图时,将触发提交按钮
当我使用ajax加载部分视图时,会触发submit按钮。 如果删除/删除“提交”按钮,则局部视图将正确渲染 这是我的javascript代码:C# 使用ajax加载局部视图时,将触发提交按钮,c#,ajax,asp.net-mvc,view,asp.net-mvc-partialview,C#,Ajax,Asp.net Mvc,View,Asp.net Mvc Partialview,当我使用ajax加载部分视图时,会触发submit按钮。 如果删除/删除“提交”按钮,则局部视图将正确渲染 这是我的javascript代码: $(".searchclientssendsms").keypress(function (event) { var keycode = (event.keycode ? event.keycode : event.which); if (keycode == '13') { //enter key var
$(".searchclientssendsms").keypress(function (event) {
var keycode = (event.keycode ? event.keycode : event.which);
if (keycode == '13') { //enter key
var value = $(this).val();
$.get("/smstemplate/SearchClients/" + value,
function (data) {
$('#searchClientsResult').html(data);
});
}
});
RouteConfig中有关我的搜索的行:
routes.MapRoute(name: "SearchClientsSendSMS",
url: "smstemplate/searchclients/{search}",
defaults: new { controller = "smstemplate",
action = "searchclients" });
以及控制器的功能:
public ActionResult SendSMS()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SendSMS(SMSTemplate sms, string[] clients)
{
foreach (string client in clients)
{
int idclient = Convert.ToInt32(client);
Customer customer=db.Customers.Find(idclient);
// SendSMS(customer.Phone, sms.Text);
}
return View();
}
public ActionResult SearchClients(string search)
{
List<Customer> clients = db.Customers.Where(c => c.Deleted == true && (c.Email.Contains(search) || c.Name.Contains(search) || c.Phone.Contains(search))).ToList();
return PartialView(clients);
}
我只在回车键时注意到这种行为
那么,是什么导致了这种情况呢?在我看来,
Enter
键也在提交按钮,所以它在调用AJAX的同时按下按钮
试试这个:
$(".searchclientssendsms").keypress(function (event) {
var keycode = (event.keycode ? event.keycode : event.which);
if (keycode == '13') { //enter key
var value = $(this).val();
$.get("/smstemplate/SearchClients/" + value,
function (data) {
$('#searchClientsResult').html(data);
});
event.preventDefault(); //Inside the if so only is prevented for Enter Key.
}
});
要在所有页面中禁用它,您可以尝试以下操作:
$(document).ready(function() {
$(window).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
表单何时发布??在哪个特定事件中?现在我无法输入文本。我注意到,如果在该视图的任何输入中按enter键,则会触发submit按钮。@Otix这是enter键的默认操作,请提交表单。确保event.preventDefault()位于if块内,否则将阻止任何键被按下。看看我添加的代码。你的解决方案很有效!我将event.preventDefault()放在获取输入值的行之前。但我现在的问题是如何删除整个页面的此行为(回车键)。@Otix在答案中添加了如何删除整个页面的行为,应该可以。
$(document).ready(function() {
$(window).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});