2012-10-12 1 views
6

Я был приятно удивлен, обнаружив, что следующий код, если смотреть в Chrome, оказывает DatePicker:Как изменить HTML5 замещающий текст, который отображается в поле даты в Chrome

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

Однако, текст-заполнитель игнорируется и вместо этого отображается «Дата/месяц/год».

Как я могу изменить текст заполнителя и использовать его?

Я уже пробовал:

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

, но безрезультатно.

+0

заполнитель будет отображаться только если текстовое поле пустым, в противном случае мы не можем изменить его. – vusan

+4

Атрибут placeholder должен быть подсказкой о том, как заполнить форму (то есть пример или описание формата), это явно ** не ** замена элемента 'label'. Поместите «метку» рядом с полем. – Quentin

+1

Поле пустое. Он показывает этот точный текст сразу, когда страница загружает «День/Месяц/Год» точно так же, как я только что написал (но без кавычек). –

ответ

1

Пожилым вопрос, но вот решение, которое я недавно пришлось использовать.

Вы не сможете использовать поле даты HTML5, но это можно сделать с помощью jQuery UI datepicker. 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>

Смежные вопросы