2016-12-18 6 views
0

Когда я отправлю форму, я хочу запустить метод Javascript, указанный ниже. Этот метод JS отправит запрос POST на сервер. Однако в коде, указанном ниже, этот метод JS не запускается. Может кто-то, пожалуйста, помогите мне, как исправить это?Вызов метода JS из формы Razor submit

@using (Html.BeginForm(null, null, FormMethod.Post, new { @class = "form-horizontal", onsubmit = "submitdata" })) 
{ 
    @Html.AntiForgeryToken() 

    @Html.ValidationSummary() 
    <div class="form-group"> 
     @Html.LabelFor(m => m.EMAIL, new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      @Html.TextBoxFor(m => m.email, new {id ="Email", @class = "form-control" }) 
     </div> 
    </div> 
    <div class="form-group"> 
     @Html.LabelFor(m => m.pwd, new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      @Html.PasswordFor(m => m.pwd, new {id="pwd", @class = "form-control" }) 
     </div> 
    </div> 
    <div class="form-group"> 
     @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" }) 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-md-offset-2 col-md-10"> 
      <input type="submit" class="btn btn-default" value="Register" onsubmit="submitdata"/> 
     </div> 
    </div> 
} 

Javascript

function submitdata() { 
    var pwd = document.getElementById("pwd"); 
    var email = document.getElementById("email"); 

    $.ajax({ 
     type: 'post', 
     url: '/Account/Reg', 
     data: { 
      email: email, 
      password: pwd 
     }, 
     success: function (response) { 
      $('#success__para').html("You data will be saved"); 
     } 
    }); 

    return false; 

} 

ответ

0

Вы пропустите() в onsubmit атрибута;

onsubmit = "submitdata()" 
+0

Вместо использования 'onsumit =" submitdata() "' в форме Как я могу использовать его при нажатии кнопки? – Illep

0

Как указал Вострегин в своем ответе, в вызове метода отсутствует ().

Вот unobtrusive javascript способ (с помощью JQuery)

function submitdata() { 
    // your existing code 
} 
$(function(){ 
    $("form").submit(function(e){ 
    e.preventDefault(); 
    submitData(); 
    }); 
}); 

Если вы хотите подключить его с помощью специальной кнопки мыши, используйте селектор JQuery, чтобы получить кнопку и связать событие щелчка.

<input type="submit" id="myButton" value="Register"/> 

и

$(function(){ 
    $("#myButton").click(function(e){ 
    e.preventDefault(); 
    submitData(); 
    }); 
}); 

При таком подходе, вы должны удалить onsubmit событие из вашего UI разметки.

Смежные вопросы