1

我对 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 文件中的:

  1. 这应该验证表单并发送它:

    $('#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');
    });
    
  2. 这是表格。它应该被发布到 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;
        }
    

谢谢!

4

1 回答 1

0

e.preventDefault();如果条件,你应该搬进去 。因为它将停止表单提交。我相信您想在验证失败的情况下停止提交表单。

$('#callMeNow1').submit(function (e) {

    var selectedCity = $('#txtCallMeNow').val();
    if (selectedCity == 'enter phone number...'){
        e.preventDefault(); 
        alert('enter phone number!'); 
    }                             

});
于 2012-10-10T16:37:30.410 回答