JQuery копировать текст из классов в строке таблицы с включенным радио для полей ввода - PullRequest
0 голосов
/ 10 июля 2010

Я работаю над сортировщиком магазинов.Он интегрирован в страницу заказа.Клиент вводит свой почтовый индекс и магазины вокруг них отображаются в таблице с десятью строками.Я уже установил переключатели в конце каждой строки, чтобы пользователь мог выбрать, куда он хотел бы доставить свой продукт.У каждой строки есть название магазина, адрес и номер телефона с каждым фрагментом данных, разбитым по классу, то есть: ".street-address, .city, .state".проблема в том, что существуют эти наборы классов для каждой строки таблицы.Я боролся с кодом jquery, чтобы попытаться найти способ указать, что, когда радио в строке таблицы проверяется, я хочу, чтобы текст с .street-address из этой строки был указан в качестве значения поля ввода "Улица-адрес »в форме заказа.Любая помощь будет оценена.Я пробовал что-то вроде:

 $('.fflradio').click (function() {$(this).parents('tr').get(".views-field-title").text($("company-name:input").val());});

Я знаю, что это неправильно, потому что, очевидно, не работает, но любой вклад будет оценен!Спасибо!

Ответы [ 2 ]

1 голос
/ 10 июля 2010

Возможно, вы захотите переосмыслить свой подход. Вы, в основном, снимаете с экрана свою собственную веб-страницу, чтобы получить информацию, которая, очевидно, у вас уже есть. Я бы порекомендовал хранить данные об адресе магазина в каком-либо объекте, доступном из обработчика щелчков переключателем. Таким образом, ваша реализация не зависит от конкретной схемы пользовательского интерфейса.

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

// In the code that builds a row in the table, store the address data in an object in the radio button's data dictionary (variables should be self-explanatory):
theRadioButton.data('storeAddress', 
  {
    'street': theStreet,
    'city': theCity,
    'state': theState,
    'postalCode': thePostalCode
  });

// In your event handler, refer to the address object:
$('.fflradio').click(function() {
  var address = $(this).data('storeAddress');
  $('#streetAddressFieldID').val(address.street);
  $('#citysFieldID').val(address.city);
  $('#stateFieldID').val(address.state);
  $('#postalCodeFieldID').val(address.postalCode);
});
1 голос
/ 10 июля 2010

Ну, не видя ваш HTML, я не могу точно сказать, как выглядят селекторы, но это может быть близко (и это не далеко от того, что вы получили):

$('.fflradio').click(function() {
  $('#id-of-the-address-field').val(
    $(this)
      .closest('tr')
      .find('.street-address')
      .text()
  );
});

Теперь обратите внимание, что у вас могут возникнуть проблемы, если в поле адреса компании есть разметка HTML.Конечно, вы бы сделали аналогичный звонок, если вам нужно было указать название компании, номер телефона, что угодно.

...