使用Jquery防止将默认值提交给MVC3控制器?

时间:2012-01-26 14:28:35

标签: jquery asp.net-mvc-3 model-view-controller 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" />  
} 

我正在使用清除和替换默认文本的功能   <input>元素,作者:Ross Shannon,http://www.yourhtmlsource.com/

我的目标是只发送非默认值?这样当我断点到我的控制器时,我的查询里面有默认值?有没有办法解决这个问题,仍然保留MVC3本机代码?

有什么想法吗?

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

尝试从默认字段中删除name属性。这样就不会提交默认输入字段。更改默认输入字段的值后,只需添加名称属性...

希望我足够清楚......