У меня есть простой PHP и JQuery контактной форма (3 поля: имя - адрес электронной почты - сообщение), чье поле ввода кодируется следующим образом:По умолчанию поля формы Значения шутите с формой действиями
<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="requiredField"/>
Я хотел бы это поле имеет значение по умолчанию, а не пустое. В то же время я не стал бы доверять использованию атрибута placeholder, поскольку он не поддерживается повсеместно.
Я нашел этот JQuery скрипт, который делает работу превосходным образом:
<script>
$(function() {
$(".contact_form_field")
.focus(function() {
var $this = $(this);
if (!$this.data('default')) {
$this.data('default', $this.val());
}
if ($this.val() == $this.data('default')) {
$this.val('')
.css('color', '#000');
}
})
.blur(function() {
var $this = $(this);
if ($this.val() == '') {
$(this).val($this.data('default'))
.css('color', '#666');
}
})
.css('color', '#666')
});
</script>
Однако, чтобы сделать его работу я должен был изменить значение атрибутов поля для desidered текста заполнителя:
<input type="text" name="contactName" id="contactName" value="Name" class="requiredField"/>
Это предсказуемо, кажется, вмешиваться в действие формы, которые должны предотвратить почту отправляется, если есть пустые поля:
if(trim($_POST['contactName']) === '') {
$hasError = true;
} else {
$name = trim($_POST['contactName']);
}
Я думал, что я просто должен был изменить строку
if(trim($_POST['contactName']) === 'Name') { or
if(trim($_POST['contactName']) == 'Name') { or
, но это не похоже на работу. Почта отправляется, даже если поле остается нетронутым (не пустым, так как отображается текст «Имя»).
Я затрудняюсь понять, что я делаю неправильно, любые данные (извините за каламбур x_x) были бы весьма признательны.
Существует также плагин jQuery под названием «водяной знак», который не влияет на фактическое значение ввода. – DevlshOne