2013-08-15 3 views
0
представить

У меня есть форма, которая выглядит следующим образом:прилагая текст в поле ввода на

<form> 
    <input type="text" value="" name="order[]" title="Salmon" /> 
    <input type="text" value="" name="order[]" title="Trout" /> 
    <input type="text" value="" name="order[]" title="Halibut" /> 
    <input type="text" value="" name="order[]" title="Crab" /> 
      <button type="submit">Submit</button> 
</form> 

пользователей будут ввод номера для значения. Когда они отправляют форму, я хочу добавить заголовок каждого входа в заявку. Поэтому, если пользователь вводит «5» для первого поля ввода, он будет представлять значение «Лосось-5».

Как я могу достичь этого с помощью jQuery?

ответ

1

У меня здесь работает http://jsfiddle.net/NLtS9/6/. Изменить тип = «отправить» «кнопку», чтобы ввести =

 $('button').click(function() { 
      $('input[name="order[]"]').map(function() { 
       $(this).val($(this).attr('title') + ' - ' + $(this).val()); 
       alert($(this).val()); 
      }); 
     }); 
+0

Это, похоже, сработало! Что делать, если поле ввода остается пустым, насколько сложно заставить эту функцию ничего не делать для пустых значений без значения? –

+0

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

0

Что-то вроде этого, возможно?

$('button').click(function() { 
    $('input[name="order"]').map(function() { 
     $(this).val($(this).attr('title') + ' - ' $(this).val()); 
    }); 

    ('form').submit(); 
}); 
+0

Моя форма представляет нормально с этим, однако титул и «-» не добавляются к полям ввода. Кажется, он не работает. –

+0

@RobertE Это было потому, что форма отправлялась без выполнения этого скрипта. Вы можете изменить удаление атрибута 'type =" submit "" с вашей кнопки и попробовать вместо этого. – federicot

+0

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

0

Попробуйте

$('button').click(function(){ 
     $('input').each(function(index,data) { 
     $(this).val($(this).attr('title')+"-"+$(this).val()); 
     }); 
    }) 
+0

Хм, похоже, это вызывает ошибку при подаче всей формы. –

0

Сделайте кнопку простая кнопка не кнопку отправки, а затем сделать

$('button').click(function(){ 
     $('input[name="order"]').map(function() { 
     $(this).val($(this).attr('title') + ' - ' $(this).val()); 
     }); 
     $('form').submit(); 
    }) 
+0

Форма отправляется, но она не добавляет название и '-'. Кажется, он не работает. Я также убедился, что моя кнопка не включает атрибут type. –

+0

Если вы не указали атрибут типа в кнопке, он по умолчанию будет отправлен. Таким образом, тип ДОЛЖЕН быть там, и он должен быть установлен на кнопку. то есть -> type = "button" – Nick

+0

Да, вы должны явно установить атрибут type на 'button' – Farhan

0

Используйте обработчик submit событий в JQuery. Этот обновленный код работы в моем локальном хосте

$(document).ready(function(){ 
    $('form').submit(function (ele) { 
     ele.preventDefault(); // don't submit multiple times 
     $('input[type="text"]').each(function(_,e){ 
      var old_val = $(e).val(); 
      $(e).attr('data-old', old_val).val($(e).attr('title') + '-' + old_val); 
     }); 

     this.submit(); // use the native submit method of the form element 
     $('input[type="text"]').each(function(_,e){ 
      $(e).val($(e).attr('data-old')); 
     }); 
    }); 
}); 

HTML Ireplace button по input и показать action явно.

<form method="post"> 
    <input type="text" value="" name="order[]" title="Salmon" /> 
    <input type="text" value="" name="order[]" title="Trout" /> 
    <input type="text" value="" name="order[]" title="Halibut" /> 
    <input type="text" value="" name="order[]" title="Crab" /> 
    <input type="submit" value="submit"></button> 
</form> 
+0

Это не работает. Форма отправляется как обычно, но ничего не добавляется к стоимости. –

+0

У меня есть обновленный ответ с рабочим кодом. –

+0

Я следую коду точно так, как указано, и он действительно не передает ничего, кроме введенного значения. Так странно. –

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