1

私は MVC に非常に慣れていないので、説明するのは難しいでしょう。申し訳ありません!

post メソッドを使用して送信する前に検証したいフォームがあります。フォームは Index.cshtml ファイルにあり、HomeController に投稿されます。私の問題は、フォームを送信するときです。正しい index() メソッド (CallMeNow リクエストを使用した HomeController の 2 番目のメソッド) に到達していません。

この方法でこれを解決することは可能ですか?

これは、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();if condition 内に移動する必要が あります。フォームの送信が停止するためです。検証に失敗した場合に備えて、フォームの送信を停止したいと考えています。

$('#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 に答える