2015-07-08 6 views
1

Я хочу отобразить частичный вид с помощью Ajax после отправки формы. Мне нужно прослушать событие отправки, а затем запустить Ajax для отображения частичного представления. Примечание. Мне не нужно отправлять форму с помощью JQuery или Ajax, мне просто нужно поймать это событие и запустить Ajax.Asp.Net HtmlBeginForm() Jquery submit не работает

Однако функция JQuery $ ("form"). Submit() не работает!

Я поставил точку останова в отладчике Chrome и даже не уволен. В чем проблема? Вот код:

P.S. Форма состоит из comboboxes, где пользователь может выбрать имя и версию приложения, затем диаграммы результатов тестирования производительности будут отображаться как частичное представление с использованием Ajax.

@model PerformanceDashboard.Models.ApplicationDashboardViewModel 
 

 
<h3>Per Application</h3> 
 

 

 
<br /> 
 

 
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { id = "form" })) 
 
{ 
 
    // @Html.AntiForgeryToken() 
 
          
 
    <div class="selector-label"> 
 
      @Html.LabelFor(model => model.ApplicationNames) 
 
    </div> 
 

 
    <div class="selector-combobox"> 
 
     @Html.DropDownListFor(x => x.SelectedApplication, Model.ApplicationNames) 
 
     @Html.ValidationMessageFor(x => x.SelectedApplication) 
 
    </div> 
 

 
    <br /> 
 
    
 
    <div class="selector-label"> 
 
     @Html.LabelFor(model => model.TestingTypes) 
 
    </div> 
 

 
    <div class="selector-combobox"> 
 
     @Html.DropDownListFor(x => x.SelectedTestingType, Model.TestingTypes) 
 
     @Html.ValidationMessageFor(x => x.SelectedTestingType) 
 
    </div> 
 

 
    <br /> 
 
    
 
    <div class="selector-label"> 
 
     @Html.Label("Range") 
 
    </div> 
 

 
    <div class="selector-combobox"> 
 
     @Html.DropDownListFor(x => x.SelectedFirstVersion, Model.FirstVersion) 
 
     @Html.ValidationMessageFor(x => x.SelectedFirstVersion) 
 
     &nbsp; 
 
     @Html.DropDownListFor(x => x.SelectedSecondVersion, Model.SecondVersion) 
 
     @Html.ValidationMessageFor(x => x.SelectedSecondVersion) 
 
    </div> 
 
    
 
    <br /> 
 
    
 
    <input type="submit" value="Generate" /> 
 
    
 
} 
 

 
<div id="displayarea"> 
 

 
</div> 
 

 

 
<script> 
 

 
    $(function() { 
 

 
     $("#form").submit(function (e) { 
 

 
      e.preventDefault(); 
 
      alert("form submitted!"); 
 

 
      $.ajax({ 
 
       type: this.method, //'POST' 
 
       url: this.action, //'/controller/index' 
 
       dataType: 'html', 
 
       success: function (result) { 
 
        $('#displayarea').html(result); 
 
       } 
 
      }); 
 
     }) 
 
    }); 
 

 
</script>

+0

попробуйте другой идентификатор, кроме (формы) – Ala

+1

Должен работать, [скрипка] (https://jsfiddle.net/caaL602x/2/). Отправьте свой html для получения дополнительной информации. – dee

ответ

0

OMG !! Проблема заключалась в том, что я не ссылался на JQuery в HTML! Эта линия решить мою проблему:

<script src="~/Scripts/jquery-1.10.2.js"></script>

спасибо!