我对MVC很新,所以我很难解释,对不起!
我有一个表单,我想在使用post方法发送之前验证。该表单位于Index.cshtml文件中并发布到HomeController。 我的问题是当我发送表单时它没有到达正确的index()方法(HomeController中的第二个方法带有CallMeNow请求)。
有可能以这种方式解决这个问题吗?
这就是我在HomeController.cs文件中的内容:
// GET: /Home/
[HttpGet]
public ViewResult Index()
{
return View();
}
// Send CallMeNow Request.
[HttpPost]
public ViewResult Index(string txtCallMeNow)
{
if (txtCallMeNow != null)
{
// .. doing something here.
}
ViewBag.EmailSent = "Thank you.";
return View();
这是我在Index.cshtml文件中的内容:
这应验证表单并发送:
$('#callMeNow1').submit(function (e) {
e.preventDefault();
var selectedCity = $('#txtCallMeNow').val();
if (selectedCity == 'enter phone number...')
alert('enter phone number!');
else
document.location = $(this).prop('action');
});
这是表格。它应该发布在HomeController:
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "callMeNow1" }))
{
<input type="text" id="txtCallMeNow" name="txtCallMeNow" onfocus="if(this.value != '') {this.value = '';}"
onblur="if (this.value == '') {this.value = 'enter phone number...';}" value=" enter phone number..." /><br />
<input type="submit" class="call_me_now" value="" />
@ViewBag.EmailSent;
}
谢谢!
答案 0 :(得分:0)
如果有条件,你应该将e.preventDefault();
移到里面。因为它会停止提交表单。我相信你想在验证失败的情况下停止提交表单。
$('#callMeNow1').submit(function (e) {
var selectedCity = $('#txtCallMeNow').val();
if (selectedCity == 'enter phone number...'){
e.preventDefault();
alert('enter phone number!');
}
});