2012-01-26 4 views
2

私は自分の入力のデフォルト値を持つことができます。また、ユーザーのサブミットフォームでは、変更された入力の値だけがクエリに移ります。JqueryでMVC3コントローラにサブミットされるデフォルト値を禁止しますか?

私が持っている:私はクリアとロスシャノンによって、 <input>要素にデフォルトのテキストを交換するための機能を使用しています

@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" /> 
} 

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属性をデフォルトフィールドから削除してください。このようにして、デフォルト入力フィールドは提出されません。デフォルトの入力フィールドの値が変更された後、ちょうどそれにname属性を追加します...私は十分に明確だった

希望...

+0

私は属性としてこれを解決するプレースホルダ答えを提供しました...乾杯! –

+1

それは素晴らしいです..しかし、私は私の答えがあなたと少し違っていると思います...あなたの解決策は、デフォルト値を持つ入力フィールドのために空の値を提出します..私の解決策はデフォルト値を提出しません。間違って...(アップス:)あなたが質問をした人であるとは思わなかった):) – PrimosK

関連する問題