2012-01-26 2 views
2

Как я могу получить значения по умолчанию для ввода и когда пользователь подает заявку, только значения из измененных входов идут на запрос, те, которые не были изменены, нет?Предотвращать отправку значений по умолчанию в контроллер MVC3 с помощью JQuery?

у меня есть:

@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?

Любые идеи?

+0

Можете ли вы предоставить полную ссылку функции, которую используют для очистки и замены текста? – PrimosK

ответ

0

Полный ответ: от 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; 
} 
0

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

Надежда Я был достаточно ясен ...

+0

Я дал ответ ниже, заполнитель как атрибут разрешает это ... Приветствия! –

+1

Это здорово .. Но я думаю, что мой ответ немного отличается от вашего ... Ваше решение будет отправлять пустые значения для полей ввода, которые имеют значение по умолчанию. Мое решение даже не будет отправлять значения по умолчанию. Исправьте меня, если я неправильно ... (Упс :) не видел, что ты тот, кто задал вопрос) :) – PrimosK