2015-01-24 5 views
0

Я прочитал это SO post и применил следующий код, чтобы заменить текстовое поле на вариант выбора HTML.jquery заменить значение текстового поля с помощью значения выбора

$("#id_reason").replaceWith(
    '<select id="id_reason" name="id_reason" onchange="changeReason();"' + 
     '<option value="0">Select a Reason</option>' + 
     '<option value="General Query">General Query</option>' + 
     '<option value="Feedback">Feedback</option>' + 
     '<option value="Complaint">Complaint</option>' + 
     '<option value="Translation">Translation</option>' + 
     '<option selected value="Registration">Registration</option>' + 
     '<option selected value="Subscription">Subscription</option>' + 
     '<option selected value="Other">Other</option>' + 
    '</select>'); 

    function changeReason() { 

     //apply some code here I think! 

    } 

Проблема у меня есть, что форма не распознает выбранное значение причины списка выбора б/с проверкой формы не позволяет значение причины быть пустым.

Как написать код, чтобы применить значение параметра выбора как значение, которое должно применяться к полю причины при отправке формы?

Я попытался переименовать список выбора в id_reason1, но не могу понять, как применить выбранное значение к полю при отправке формы.

+0

Просто введите значение выбранного параметра (или самого выбора, которое должно быть одинаковым), и назначьте его как значение текстового поля ...? – CBroe

+0

CBore, как? b/c я не могу заставить его работать. – user3354539

+0

Как сказал Cbroe: 'document.getElementById (« id_reason »). Value' должен получить значение причины. Добавление атрибута 'selected' к одному из параметров должно давать стандартное значение. Используйте атрибут 'disabled' для первой опции, чтобы не разрешать выбор после первого раза. – Mouser

ответ

2

Здесь вы идете:

$("#id_reason").replaceWith(
     '<select id="id_reason" name="reason">' + 
      '<option value="">Select a Reason</option>' + 
      '<option value="General Query">General Query</option>' + 
      '<option value="Feedback">Feedback</option>' + 
      '<option value="Complaint">Complaint</option>' + 
      '<option value="Translation">Translation</option>' + 
      '<option value="Subscription">Subscription</option>' + 
      '<option value="Registration">Registration</option>' + 
      '<option value="Other">Other</option>' + 
     '</select>'); 

У вас есть две проблемы:

  1. у вас есть опечатка - заброшенный закрыть выберите тег; и
  2. введите значение 1-й опции, как показано на рисунке.
+0

спасибо, что работает. – user3354539

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