Предотвратить отправку значений по умолчанию в контроллер MVC3 с помощью Jquery? - PullRequest
2 голосов
/ 26 января 2012

Как я могу иметь значения по умолчанию для моих входных данных, и когда пользователь отправляет форму, на запрос отправляются только значения из измененных входных данных, а те, которые не были изменены, - нет?

У меня есть:

@using (Ajax.BeginForm("Search", "Persons", new AjaxOptions
{
   HttpMethod = "POST",
   InsertionMode = InsertionMode.Replace,
   UpdateTargetId = "results",
   LoadingElementId = "progress"
}))

{
<input name="Name" type="text" class="cleardefault" value="First and Last name"/>
<input name="Adress" type="text" class="cleardefault" value="Adress"/>

<input name="Search" type="submit" class="mainSearchSubmit" value="submit" />  
} 

Я использую функции для очистки и замены текста по умолчанию в <input> элементов, Росс Шеннон, http://www.yourhtmlsource.com/

Моя цель - отправлять только те значения, которые не являются значениями по умолчанию? Таким образом, когда я устанавливаю точку останова на моем контроллере, мой запрос имеет значения по умолчанию внутри ?? Есть ли способ решить эту проблему и сохранить собственный код MVC3?

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 28 января 2012

Попробуйте удалить атрибут name из полей по умолчанию.Таким образом, поля ввода по умолчанию не будут отправлены.После того, как значение поля ввода по умолчанию изменено, просто добавьте к нему атрибут name ...

Надеюсь, я достаточно ясно ...

0 голосов
/ 28 января 2012

Полный ответ: от hagenburger.net

HTML

<input type="text" placeholder="Fill me …">

JS

//for older browsers

$('[placeholder]').focus(function() {
     var input = $(this);
     if (input.val() == input.attr('placeholder')) {
         input.val('');
         input.removeClass('placeholder');
     }
}).blur(function() {
    var input = $(this);
    if (input.val() == '' || input.val() == input.attr('placeholder')) {
        input.addClass('placeholder');
        input.val(input.attr('placeholder'));
    }
}).blur();


$('[placeholder]').parents('form').submit(function() {
    $(this).find('[placeholder]').each(function() {
        var input = $(this);
        if (input.val() == input.attr('placeholder')) {
             input.val('');
        }
    })
});

CSS

.placeholder
{
    color: #aaa;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...