jQuery, как автозаполнить текстовые поля в соответствии с тем, что выбрано в выпадающем меню выбора? - PullRequest
1 голос
/ 12 октября 2011

Счет-фактура имеет список LineItems.

LineItems имеют имя (в меню выбора), свойства цены и количества.

По умолчанию в каждом счете-фактуре 3 пустых строкиЕсли пользователь хочет добавить как минимум 3 позиции.

Если пользователь выбирает позицию в раскрывающемся меню выбора, я хочу, чтобы количество по умолчанию равнялось 1, а цена для этой позиции автоматически заполнялась согласнона выбранную позицию.

Как я мог это сделать?Я пытаюсь найти ответ, но не могу найти то, что ищу.

Как примечание: я использую Ruby 1.9.2 и Rails 3.1.0

1 Ответ

1 голос
/ 12 октября 2011

в HTML 5 вы можете сделать это:

<head>
    <script type="text/javascript">
      $(document).ready(  function(){
       $("#lineItemsDD").change(function(event){
          var optionElem =$(this).find(":selected")[0];
          $(get the quantity input text box).val(optionElem.dataset.defaultQuantity);
          $(get the price input text box).val(optionElem.dataset.defaultPrice);
       });
      }
     );
    </script>
</head>
<body>
    <select name="lineItem" id="lineItemsDD">
    <option value='A' data-defaultQuantity='1' data-defaultPrice='12.50'>option A</option>
    <option value='B' data-defaultQuantity='1' data-defaultPrice='2.50'>option B</option>
    <option value='C' data-defaultQuantity='1' data-defaultPrice='1.50'>option C</option>
    </select>
</body>

иначе, сделайте это:

<head>
    <script type="text/javascript">
      $(document).ready(  function(){
//get the default data, this may be an ajax call for you
       var defaultData = { "A":{"quantity":1,"price":12.50},"B":{"quantity":1,"price":2.50},"C":{"quantity":1,"price":1.50}};
// set the data into each option for use later.
       $("#lineItemsDD option").each(function(index, elem){
          $(this).data("defaultData", defaultData[$(this).val()]  );
       });
// if the user changes their option, set the new default data in the other inputs
       $("#lineItemsDD").change(function(event){
          var defaultData =$(this).find(":selected").data('defaultData');
          $(get the quantity input text box).val(defaultData.quantity);
          $(get the price input text box).val(defaultData.price);
       });
      }
     );
    </script>
</head>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...