2012-10-12 14 views
6

byłem mile zaskoczony, aby dowiedzieć się, że poniższy kod, patrząc w Chrome renderuje datepicker:Jak zmienić tekst zastępczy HTML5, który pojawia się w polu Data w Chrome

<input type="date" name="wdate" id="wdate" value="" placeholder="date of purchase" /> 

Jednak tekst zastępczy jest ignorowana, zamiast tego wyświetla się "Data/miesiąc/rok".

Jak zmienić tekst zastępczy i użyć własnego?

Próbowałem już:

<script> 
    $("#wdate").attr("placeholder", "Day/Month/Year of purchase"); 
</script> 

ale bezskutecznie.

+0

zastępczy będzie wyświetlany tylko wtedy, gdy pole tekstowe jest puste, w przeciwnym razie nie można go zmienić. – vusan

+4

Zastępczy atrybut ma być podpowiedzią, jak wypełnić formularz (np. Przykład lub opis formatu), to jest wyraźnie ** nie ** zastąpienie elementu 'label'. Umieść "etykietę" obok pola. – Quentin

+1

To pole jest puste. Pokazuje dokładnie ten tekst natychmiast po załadowaniu strony "Dzień/miesiąc/rok" dokładnie tak, jak to właśnie napisałem (ale bez cudzysłowów). –

Odpowiedz

1

Starsze pytanie, ale tutaj jest rozwiązanie Niedawno miałem do wykorzystania.

Nie będzie można użyć pola daty HTML5, ale można tego dokonać za pomocą datepika jQuery UI. http://jsfiddle.net/egeis/3ow88r6u/

var $datePicker = $(".datepicker"); 
 

 
// We don't want the val method to include placehoder value, so removing it here. 
 
var $valFn = $.fn.val; 
 
$.fn.extend({ 
 
    val: function() { 
 
     var valCatch = $valFn.apply(this, arguments); 
 
     var placeholder = $(this).attr("placeholder"); 
 
     
 
     // To check this val is called to set value and the val is for datePicker element 
 
     if (!arguments.length && this.hasClass('hasDatepicker')) { 
 
      if (valCatch.indexOf(placeholder) != -1) { 
 
       return valCatch.replace(placeholder, ""); 
 
      } 
 
     } 
 
     return valCatch; 
 
    } 
 
}); 
 

 
// Insert placeholder as prefix in the value, when user makes a change. 
 
$datePicker.datepicker({ 
 
    onSelect: function(arg) { 
 
     $(this).val($(this).attr("placeholder") + arg); 
 
    } 
 
}); 
 

 
// Display value of datepicker 
 
$("#Button1").click(function() { 
 
    alert('call val(): {' + $datePicker.val() + '}'); 
 
}); 
 

 
// Submit 
 
$('form').on('submit', function() { 
 
    $datePicker.val($datePicker.val()); 
 
    alert('value on submit: {' + $datePicker[0].value + '}'); 
 
    return false; 
 
});
.ui-datepicker { width:210px !important; }
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/blitzer/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script> 
 
<form method="post"> 
 
    <p>HTML5 Date: <input type="date" placeholder="html5 date:" /></p> 
 
    <p>jQuery DatePicker: <input type="text" class="datepicker" placeholder="Start date:" /></p> 
 
    <p><input id="Button1" type="button" value="Get DatePicker Value" title="Get DatePicker Value" /></p> 
 
    <p><input type="submit" text="fire submit" /></p> 
 
    <p>Original Source for this <a target="_blank" href="http://jqfaq.com/how-to-add-some-custom-text-to-the-datepickers-text-field/">JQFaq Question</a></p> 
 
</form>

Powiązane problemy