2016-11-30 2 views
-1

Я хочу изменить данные таблицы, используя событие ajax, но событие onclick() ничего не вызывает. вот код. (OnClick() событие записывается в последнем сНу тега)onclick() не вызывает мою функцию

@{ 
    ViewBag.Title = "Edit_Room"; 
    Layout = "~/Views/Shared/_LayoutAdmin.cshtml"; 
} 
<script src="~/Content/Scripts/jquery-3.1.1.js"></script> 
<script src="~/Content/Scripts/edtiRoom.js"></script> 

<h2>Edit_Room</h2> 
<div> 

    <div class="panel panel-default container"> 

     <div class="panel-body"> 
      <h2>Please enter required information</h2> 
       <div class="col-num2"> 
        <div> 
         <h3>Room Number</h3> 
         <select name="roomid" id="roomid"> 
          @foreach (var item in Model) 
          { 
           <option value="@item.Id">@item.Id</option> 
          } 
         </select> 
        </div> 
        <div> 
         <h3>Room Type</h3> 
         <input type="text" id="roomtype" name="type" pattern="[a-zA-Z]+" /> 
        </div> 
        <div> 
         <h3>Price</h3> 
         <input type="tel" id="price" name="price" pattern="^[0-9]*$" /> 
        </div> 
        <div> 
         <button type="button" onclick="editRoomFeatures()" class="btn btn-primary btn-lg"> 
          Update 
         </button> 
        </div> 

       </div> 
     </div> 
    </div> 

</div> 

А вот функция (написано в edtiRoom.js файл), что я хочу вызвать на кнопку мыши.

var editRoomFeatures = function() { 
     var roomid = $("#roomid").find('option:selected').text(); 
     var roomtype = $("#roomtype").val(); 
     var roomprice = $("#price").val(); 

     $.ajax({ 
       url: "Admin/Edit_Room_Features/", 
       type: "POST", 
       data: { roomid: roomid, roomtype: roomtype, roomprice: roomprice } 
      }) 
      .done(function() { 
       alert("Success"); 

       //alert(temp); 
       //$("#" + temp).html(partialViewResult); 
      }); 

    }; 

этот "editRoomFeatures" затем вызывает эту функцию в контроллере "Admin".

public JsonResult Edit_Room_Features(string roomid,string roomtype,string roomprice) 
     { 
     //do something here 
     } 

Но когда я отлаживаю свой проект, на кнопке onclick ничего не происходит.

+0

Почему вы не используете надлежащий обработчик событий вместо 'onclick'? – empiric

+0

Любые ошибки, возникающие в вашей консоли? – empiric

+0

Ну, я думал, что этот метод был прямолинейным –

ответ

1
function editRoomFeatures() { 
     var roomid = $("#roomid").find('option:selected').text(); 
     var roomtype = $("#roomtype").val(); 
     var roomprice = $("#price").val(); 

     $.ajax({ 
       url: "Admin/Edit_Room_Features/", 
       type: "POST", 
       data: { roomid: roomid, roomtype: roomtype, roomprice: roomprice } 
      }) 
      .done(function() { 
       alert("Success"); 

       //alert(temp); 
       //$("#" + temp).html(partialViewResult); 
      }); 

    } 

Нет Необходимые не круглых скобок

<button type="button" onclick="editRoomFeatures" class="btn 
btn-primary btn-lg"> 
          Update 
         </button> 
+0

попробовал, все равно ничего не произошло –

+0

как насчет $ (document) .ready (function() {$ ('button'). click (editRoomFeatures);}); – Yaman

0

Держите функцию вне $ (документ) .ready. это будет работать.