JavaScript在提交ASP.NET MVC表单前起作用

9
我有一个ASP.NET MVC视图,其中包含Beginform,它指定要在提交时访问的控制器和操作。但是,在提交时,我想使用jQuery调用服务获取一些数据,然后将这些数据与表单一起提交。
目前,表单上有一个提交按钮,其中按钮的onclick事件调用JavaScript方法。根据我从该方法中获得的结果,我希望将表单提交到指定的操作。
现在我无法使其正常工作。这样做是正确的方法吗?还是应该使用jQuery进行POST呢?我认为最好使用已经在表单中指定的控制器/操作。
3个回答

14

我认为最好的方法是在表单上使用事件“submit”,因为用户可能想通过在某些字段中按Enter键来提交表单。猜测,在此事件期间可以更改一些输入值。

jQuery('form#myform').submit(function(e){
   //....
   if (somevar == false)
   {
      // stop submitting form
      e.preventDefault();
   }
   else
   {
      jQuery('input#hiddeninput').val('somevalue');
   }
})

很棒的答案,但不完全是我想要做的。我想要启动一个 AJAX 请求以获取一些数据,在响应提交/重定向表单时才提交。使用上面的示例将导致请求在表单提交之前无法完成。 - Rasmus Christensen

4
解决方案是在form标签上添加submit事件。
onsubmit="return onSubmitClick(this);"
 function onSubmitClick(item) {

    console.log(item);

    return false;
}

它工作得很好。祝你好运!玩得开心!


0

我认为在控制器操作中执行查询外部 Web 服务的任务会更好。这样,您将始终将表单提交到相同的控制器操作,该操作将查询服务,并根据结果呈现视图或重定向到其他操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接