2016-07-12 3 views
2

Я не могу понять, как установить текст в текстовое поле при нажатии кнопки. Это моя разметка:Установка текста в текстовое поле при нажатии

Изображение: enter image description here

Markup:

<div id="deploymentsGrid"> 
    @if (db.CatalogCircumstances.Any()) 

    { 
     @grid.GetHtml(
     tableStyle: "table", 
     headerStyle: "table_HeaderStyle", 
     footerStyle: "table_PagerStyle", 
     rowStyle: "table_RowStyle", 
     alternatingRowStyle: "table_AlternatingRowStyle", 
     selectedRowStyle: "table_SelectedRowStyle", 
     columns: grid.Columns(

      grid.Column("Nr", @Resources.Localization.nr, format: @<text> 
       @{ row = row + 1;} @item.Nr 
      </text>, style: "p13"), 

      grid.Column("Description", @Resources.Localization.description, format: @<text> 
         @{ row = row + 1;} @item.Description 
      </text>, style: "width:250px"), 


      grid.Column("", "", format: @<text> 
           <input id="select_bttn" style="width:78px" type="submit" [email protected] /> 
      </text>) 
       ) 
      ) 
    } 
    <br /> 
</div> 




<div class="container"> 
    @using (Html.BeginForm("AddCircumstanceToList", "Health", FormMethod.Post)) 
    { 
     @Html.HiddenFor(m => m.EmployeeId) 

     @Html.TextBoxFor(m => m.Nr, Model.Nr, new { style = "width:100px" }) 
     @Html.TextBoxFor(m => m.Description, Model.Description, new { style = "width:450px" }) 
     <br /> 
      <br /> 
      @Html.LabelFor(m => m.Start_date) 
      @Html.TextBoxFor(m => m.Start_date, new { id = "datepicker5" }) 
      @Html.LabelFor(m => m.End_date) 
      @Html.TextBoxFor(m => m.End_date, new { id = "datepicker4" }) 

      <br /><br /> 
      <input type="submit" value="@Resources.Localization.save" style="width:78px" /> 
    } 
    <button id="closer">@Resources.Localization.back</button> 
</div> 

И i`d нравится при нажатии на текст 'выберите-BTTN' был установлен в текстовые поля (внутри BeginForm) и затем отправляется в действие при нажатии кнопки «Сохранить».

+0

Я попытался сделать верхнюю часть в BeginForm, и получить новую модель с новыми данными, а затем отправить эта модель уменьшает часть, устанавливая значения текстового поля. Но он обновляет страницу, что мне не нравится – GeekyNuns

ответ

1

Во-первых, заменить select_bttn с этим:

<input id="select_bttn" class="select_bttn" style="width:78px" type="button" value="OK" data-nr="@item.Nr" data-description="@item.Description" /> 

Во-вторых добавить функцию JQuery, которая получит Nr и Description свойства щелчка r вл и установить значения двух текстовых полей:

$(function() { 
    $(".select_bttn").click(function() { 
     var nr = $(this).data('nr'); 
     var description = $(this).data('description'); 

     var message = "You clicked on.Nr - " + nr + ".Description - " + description + "."; 
     alert(message); 

     $("#Nr").val(nr); 
     $("#Description").val(description); 
    }); 
}); 

Выход:

Button click event in MVC WebGrid

+0

Спасибо, я просто не могу понять, как работать с JS самостоятельно ... – GeekyNuns

+0

Итак, i вы сделали оба действия, предупреждение показывает правильные значения, но они не установлены в текстовые поля. – GeekyNuns

+0

Мне нужно было изменить идентификаторы текстовых полей, потому что у меня уже были элементы Nr и описания выше. – GeekyNuns

0

1 Добавить идентификатор в форму

@using (Html.BeginForm(  
     "AddCircumstanceToList", "Health", FormMethod.Post, 
     new { id = "myForm" }))} 

2 Добавить JQuery

$("#select_bttn").click(function() { 
    $("#Description").val("hello world"); 
    $("#myForm").submit(); 
}); 
+0

Если бы у вас возникли вопросы, но эта часть «* i'd, если при нажатии на« select-bttn »текст был установлен в текстовые поля (внутри beginform), а затем отправлен к действию при нажатии кнопки «Сохранить». * «означает, что есть ** две кнопки **, одна для отправки текста и * другого * для отправки. Это устанавливает текст и отправляется на одну кнопку. –

+0

Не нужно добавлять идентификатор, вы можете использовать '$ (" form "). Submit()' –

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