2011-06-22 14 views
8

MVC3'te bir metin kutusu için filigranı nasıl ayarlayabilirim.Ayrıca bir web sayfasında birden çok metin kutusu varsa, her metin kutusu için farklı filigran metinleri nasıl yazıyorsunuz? Html.TextBoxFor içinde htmlAttributes parametre olarakMVC3'te Metin Kutusu için Filigran

new { placeholder = "my watermark" } 

:

 <%:Html.TextBoxFor(mdl => mdl.inputTextSearch, Model.inputTextSearch)%> 

Sorunuzu anlıyorum

+0

Filigran, bir javascript çözüm ya da yeni HTML5 [tutucu] (http: // davidwalsh./html5-tutucu) isim? –

cevap

18

Eğer yanıtınız takdir, sadece içinde geçebilir.

Düzenleme:

burada belirtilen Ayrıca Javascript kullanarak eski tarayıcılar için destek ekleyebilir

:

http://www.standardista.com/html5-placeholder-attribute-script

+0

Daha önce bunu denedim ve bu hatayı alıyorum, 'TextBoxFor' yöntemi için aşırı yüklenme yok 3 arguments alır – Sweta

+4

Bunu deneyin: <%: Html.TextBoxFor (mdl => mdl.inputTextSearch, new {placeholder = "benim filigran"})% > – gram

3

Genellikle sadece ihtiyaç alanlarda MVC proje için aşağıdaki jquery kullanmak filigran:. (IE 6 ile uyumlu kod - 9, Firefox 2-4, safari 4.

$('#UserSearch').Watermark("Search term", "#fff"); 

/// JQuery Plugin kodu

(function($) { 
var map=new Array(); 
$.Watermark = { 
    ShowAll:function(){ 
     for (var i=0;i<map.length;i++){ 
      if(map[i].obj.val()==""){ 
       map[i].obj.val(map[i].text);      
       map[i].obj.css("color",map[i].WatermarkColor); 
      }else{ 
       map[i].obj.css("color",map[i].DefaultColor); 
      } 
     } 
    }, 
    HideAll:function(){ 
     for (var i=0;i<map.length;i++){ 
      if(map[i].obj.val()==map[i].text) 
       map[i].obj.val("");     
     } 
    } 
} 

$.fn.Watermark = function(text,color) { 
    if(!color) 
     color="#aaa"; 
    return this.each(
     function(){  
      var input=$(this); 
      var defaultColor=input.css("color"); 
      map[map.length]={text:text,obj:input,DefaultColor:defaultColor,WatermarkColor:color}; 
      function clearMessage(){ 
       if(input.val()==text) 
        input.val(""); 
       input.css("color",defaultColor); 
      } 

      function insertMessage(){ 
       if(input.val().length==0 || input.val()==text){ 
        input.val(text); 
        input.css("color",color); 
       }else 
        input.css("color",defaultColor);     
      } 

      input.focus(clearMessage); 
      input.blur(insertMessage);        
      input.change(insertMessage); 

      insertMessage(); 
     } 
    ); 
}; 
})(jQuery); 
+0

Teşekkürler! Http://jsfiddle.net/maxim75/yJuF3/ –

+0

çalışır. Bu yaklaşımdaki tek sorun, kullanıcının filigranlı alanda herhangi bir şey girmemesidir, alan filigranın değer olarak algılandığından emin olur. – Ben

+0

Bunu, Gönderi HideAll öğesinde filigranı kaldırarak ele aldım. Bir araya getirdiğim yukarıdaki eklentinin daha eksiksiz bir sürümünü buldum. http://code.google.com/p/jquery-watermark/. Umarım bu size yardımcı olur. – Nickz

0

Bu JQuery'yi deneyin. Filigran metniyle bir görüntü oluşturmanız gerekir. MVC 3 standardını kullanarak

$(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"); 
       } 
      }); 
} 
3

, ve yapabileceğiniz bir HTML5 uyumlu bir tarayıcı: hangi manada

@Html.TextBoxFor(mdl => mdl.inputTextSearch, new { placeholder = "my watermark" }) 
+0

Teşekkürler, çalışıyor. :) –