2012-03-22 1 views
1

У меня есть форма со вторичным адресом. В этом разделе вы можете заполнить любой адрес Street или PO box. Я хочу, чтобы был отправлен только один адрес, поэтому я хочу очистить другую форму, если пользователь вводит данные в другое поле ввода.Очистить ввод, когда данные введены в другой вход

Мой код ниже не работает, любые идеи? Благодаря

$('#pobox_number').change(function() { 
if ($(this).val().length > 0) { 
    $('#street_name_postal').val(''); 
} 
+0

Вы можете поставить предупреждение и посмотреть, вызвана ли функция при вводе в текстовое поле pobox_number? – Asdfg

+0

Привет, я пробовал и предупреждение не запускалось. какие-либо предложения? спасибо –

+0

Привет, ребята, спасибо за всю помощь, я получил код для работы, добавив входные данные перед идентификаторами. Странно, но для этого нужно было настроить таргетинг на эти идентификаторы. Если кому-то нужны точки, просто ответьте, используя это :) –

ответ

0

Ответ оказался очень простым, не уверен, почему мне нужно было точно настроить элементы таким образом, но добавление ввода до того, как «#street_name_postal» сделал трюк.

$('#pobox_number').change(function() { 
if ($(this).val().length > 0) { 
$('input#street_name_postal').val(''); 
} 
2

Предполагая #pobox_number является входом с типом текста событие изменения только обстреливали размытость, так что ваш код может работать, но только не так как вы ожидаете.

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

$('#pobox_number').keypress(function() { 
    if ($(this).val().length > 0) { 
     $('#street_name_postal').val(''); 
    } 
} 
1

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

Но если вы не хотите отправлять содержимое (даже если оно пусто), вы должны убедиться, что атрибут name для этих элементов пуст, если атрибут name не установлен, данные не отправляются.

1

Ваш код выглядит нормально, за исключением отсутствующих закрывающих круглых скобок для change. Вы должны иметь:

$('#pobox_number').change(function() { 
    if ($(this).val().length > 0) { 
     $('#street_name_postal').val(''); 
    } 
}); 

Вот рабочий jsFiddle sample.

Таким образом, я бы предложил вместо этого использовать blur, в противном случае пользователь может перемещаться между полями, и если значение не изменилось, событие не будет запущено. Вот example of the blur approach.