2012-05-13 25 views
1

我試圖顯示水標誌我Html.Editorfor,水印用於使用顯示MVC3剃刀(提示=

這是我的ViewModel

[Display(Prompt="This is a WaterMark")] 
[DisplayFormat(DataFormatString = "{0:MM/dd/yyy}", ApplyFormatInEditMode = true)] 
public DateTime Dob { get; set; } 

這是我的視圖

@Html.EditorFor(model => model.Dob) 

這是我的EditorTemplate String.cshtml at \ Views \ Shared \ EditorTemplates \ String.cshtml

@Html.TextBox("",ViewData.TemplateInfo.FormattedModelValue, new { @class="text-box single-line", placeholder = ViewData.ModelMetadata.Watermark }) 

我試過以下this thread。但是我的水印從來沒有出現,但爲什麼?

感謝您的幫助來解決這個

+2

可能你使用的是Internet Explorer嗎? – Romias

回答

0

使用顯示器的水印(提示從來沒有爲我工作過,但有了這個jquery,你可以在你的文本框中顯示水印。在這裏我使用的是一個圖像代替水印。你需要創建一個水印文本的圖像

$(document).ready(function() { 

      /*Watermark for date fields*/ 

      if ($("#dob").val() == "") { 
       $("#dob").css("background", "#ebebeb url('/Content/images/DateWaterMark.png') no-repeat 1px 0px"); 
      } 

      $("#dob").focus(function() { 
       if (watermark == 'MM/DD/YYYY') { 
        $("#dob").css("background-image", "none"); 
        $("#dob").css("background-color", "#fff"); 
       } 
      }).blur(function() { 
       if (this.value == "") { 
        $("#dob").css("background", "#ebebeb url('/Content/images/DateWaterMark.png') no-repeat 1px 0px"); 
       } 
      }); 

      $("#dob").change(function() { 
       if (this.value.length > 0) { 
        $("#dob").css("background", "#fff"); 
       } 
      }); 
} 
4

此代碼成功地呈現在相應<input>標籤placeholder屬性。這是一個HTML5屬性,您使用的瀏覽器爲must support以便發生某些事情。例如,如果您使用的是Internet Explorer,則僅在其將來的10.0版本中將添加對此屬性的支持。

有一些客戶端腳本解決方案,例如jquery watermark plugin,您可以使用這些客戶端腳本解決方案爲尚未本機支持的瀏覽器附加所需的行爲。

0

具體回答你的問題:爲什麼在你下面爲你沒有工作職位的解決方案: 原因,你鏈接的解決方案,沒有工作是因爲你使用IE瀏覽器嘗試相同的代碼英寸Chrome - 它會顯示提示信息,我希望IE10能趕上。