2013-08-21 6 views
0

Я уже возился с этим кодом, возможно, не может показаться правильным и не нашел никакой хорошей информации о выполнении этой работы.MVC 4 Отложенное текстовое поле перед отправкой

Мне нужно очистить текстовое поле поиска и сбросить представление. Я понял, что javascript, чтобы очистить текстовое поле, и представить форму будет способ сделать это, но не может показаться, что он работает. Мой стартовый код выглядит следующим образом

КНОПКА КОД:

@using (Html.BeginForm()) 
{ 
    <div> 
     @Html.TextBox("SearchString") 
     <input type="submit" value="Search" /> 
     <input type="submit" id = "Reset" value ="Reset"/> 
    </div> 
} 

JAVASCRIPT:

<script> 
    $("#Reset").click(function (event) { 
     $("#Reset").val(""); 
    }); 
</script> 

Я предположил бы, что я должен был бы сделать Herf в JavaScript после вызова, чтобы сбросить текстовое поле , Я на правильном пути или есть более простой способ сделать это.

ответ

0

ИТАК с нажимом из UmairP и this post, вот окончательное решение:

Форма кнопки отправки

@using (Html.BeginForm()) 
{ 
    <div> 
     @Html.TextBox("SearchString") 
     <input type="submit" id = "Search" value ="Search" /> 
     <input type="submit" name = "Reset" value ="Reset"/> 
    </div> 
} 

контроллер код:

var restButton = Request.Params.AllKeys.FirstOrDefault(key => key.StartsWith("Reset")); 
if (!String.IsNullOrEmpty(restButton)) 
{ 
    SearchString = ""; 
} 

Затем я могу запустить остальное моего кода, как обычно, с ModelState.Clear(), чтобы очистить поля формы при обратной передаче.

1

Вам нужно всего лишь один из этих

  1. Кнопка сброса
  2. JavaScript кода

сбросить текст

Для кнопки сброса, попробуйте следующее

<input type="reset" id = "Reset" value ="Reset"/> 

Обратите внимание, что type=reset не отправлено

Для JavaScript вам необходимо присвоить идентификатор текстовому полю и использовать его для удаления текста. Изменить текстовое поле код

@Html.TextBox("SearchString",null, new {@id = "txtSearch"}) 

и JavaScript для

<script> 
    $("#Reset").click(function (event) { 
     $("#txtSearch").val(""); 
    }); 
</script> 

BTW, вы используете JQuery код, но вы не упомянули JQuery в Tag.

+0

Возможно, пропустили тэг (было поздно). Проблема с тем, как это настроить, это очистит, если форма не была отправлена. Но в моем случае это текстовый поиск, поэтому форма отправляется, и поисковый запрос отправляется обратно в текстовое поле, поэтому сброс не будет очищен, потому что он является частью первоначальной загрузки. Мне нужно очистить текстовое поле, а затем повторно отправить, чтобы в списке были указаны записи и все записи базы данных. – jbolt

+0

В этом случае вы можете сохранить 'type = submit' для своей кнопки сброса и использовать код jQuery для отправки пустого текста для поиска –

+0

Да, это то, что я думал. См. Мое дополнение к сообщению для решения. Я поставил галочку на ваше решение, поскольку представляет два очень хороших способа обработки сброса формы. – jbolt

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