2012-01-26 71 views
2

我怎樣纔能有我的輸入的默認值,並且當用戶提交表單時,只有來自已更改的輸入的值進行查詢,那些沒有改變的值不是?阻止使用Jquery將默認值引入MVC3控制器?

我:

@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屬性。這樣,默認輸入字段將不會被提交。默認輸入字段的值被改變後,只需添加name屬性吧...

希望我很清楚......

+0

我提供了答案波紋管,佔位符作爲屬性解決此問題......乾杯! –

+1

這太棒了..但我認爲我的答案與您的一點不同......您的解決方案將爲具有默認值的輸入字段提交空值。我的解決方案甚至不會提交默認值。如果我是錯誤...(Ups :)沒有看到你是問這個問題的人):) – PrimosK