HTML-форма - не записывать значения по умолчанию - PullRequest
2 голосов
/ 12 января 2012

Я нашел в Интернете массу решений для очистки текста по умолчанию из поля, когда поле сфокусировано, и замены его, если пользователь покидает поле, не вводя ничего.Я наконец выбрал это решение от Electric Toolbox (http://www.electrictoolbox.com/jquery-change-default-value-on-focus/):

$('.default-value').each(function() {
var default_value = this.value;
$(this).focus(function() {
    if(this.value == default_value) {
        this.value = '';
    }
});
$(this).blur(function() {
    if(this.value == '') {
        this.value = default_value;
    }
});
});

. Это работает просто отлично; каждое поле ввода текста класса default-value переключается на пустое поле, когда фокусируется. Когда я покидаю полелибо значение по умолчанию возвращается, если ничего не было введено, либо, если что-то было введено, эти данные остаются в поле. Пока все хорошо.

Однако здесь есть одна загвоздка; данные в поле по умолчанию:записывается в базу данных, когда пользователь отправляет форму. Поскольку не все наши поля являются обязательными, у нас есть несколько, которые пользователь может не заполнить. Это означает, что у нас есть окончательный список данных с большим количеством людей с адресомиз: «Джон Сэмпл, почтовый адрес, адрес 2, почтовый индекс города-штата».

Мне бы очень хотелось, чтобы я мог указать форме не отправлять поля, если информация в них соответствует стандартному.не знаю javascript - я просто собираю код, который могу найти - поэтому я уверен, что у меня неправильный синтаксис, но в идеале этобыть что-то вроде:

onsubmit
if address1 = "Street Address"
then address1 = ""

Есть ли достаточно чистый и простой способ сделать это?(Кроме того, если бы вы могли объяснить это так, будто вы разговариваете с кем-то, кто недавно получил черепно-мозговую травму, это тоже было бы хорошо.)

Ответы [ 5 ]

4 голосов
/ 12 января 2012

Знаете ли вы атрибут заполнителя html5?

<input type="text" placeholder="default text"/>
0 голосов
/ 12 января 2012

При загрузке вы должны создать массив значений по умолчанию, затем при отправке выполнить цикл по каждому полю и посмотреть, имеет ли оно значение по умолчанию, и если да, установить его пустым.

Единственная загвоздка в том, если их имя действительно "Имя".

0 голосов
/ 12 января 2012

Синтаксис может быть

$('.your-form').submit(function(e) {
    e.preventDefault(); // stop the form's default action of submitting


    if (validateForm()) {
        $(this).submit(); // proceed to normal processing
    }
});

// the over-all validation function
function validateForm()
{
    if ($('.the-field').val() == 'default value') {
        return false;
    }

    // the rest of your fields...

    return true;
}
0 голосов
/ 12 января 2012

Вы можете просто использовать атрибут заполнителя!

http://jsfiddle.net/3efja/

0 голосов
/ 12 января 2012

В вашем обработчике отправки итерируйте по каждому полю, чтобы увидеть, равны ли значения поля метке, и в этом случае пусто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...