2015-03-17 3 views
1

У меня есть форма, в которой есть поле ввода, которое использует datalist, что я хочу сделать, когда что-то выбрано из этого поля, обновите другое поле ввода с тем, что было выбрано, здесь то, что я до сих поризменение атрибута Placeholder в поле ввода html

   <div class='form-row'> 
        <div class='col-xs-12 form-group required'> 
         <h2><label class='control-label'>Product code</label></h2> 
         <input id="ItemSelect" type=text list=jobs style='font-size:21px;height: 40px;' 
           class='form-control' 
           name="Code"> 
         <datalist id=jobs> 
          <?php 
          foreach ($this->Products as $a) { 
           echo '<option value=' . $a["Code"] . '>' . $a["Code"] . " - " . $a["Name"] . ' </option>'; 
          } 
          ?> 
         </datalist> 
        </div> 

        <div class='col-xs-12 form-group required'> 
         <input id="Placeholder" readonly class='form-control' 
           placeholder="Prodcut Descirption"> 
        </div> 

        <script> 
         $("#ItemSelect") 
          .change(function() { 
           var str = ""; 
           $("datalist option:selected").each(function() { 
            str += $(this).text() + " "; 
           }); 
           $("#Placeholder").attr("placeholder", str).val("").focus().blur(); 
          }) 
          .change(); 

        </script> 

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

$("datalist option:selected") 

в

$("select option:selected") 

ли это значение для всех других полей выбора там какие-либо идеи?

ответ

-1
<datalist id=jobs> 

should change datalist tag to select tag 

<select id=jobs> 

once you change that the below statement will work 

$("select option:selected") 
+0

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

+0

, тогда вам нужно настроить таргетинг на них отдельно, используя идентификаторы, а не теги –

+0

Я пытался, чтобы он не работал, пожалуйста, не могли бы вы привести пример –

2

В datalists нет такой вещи, как option:selected.

Вы можете получить выбранное значение, посмотрев на то, что в настоящее время в input вместо:

$("#ItemSelect").change(function() { 
    var str = $(this).val() + " "; 
    $("#Placeholder").attr("placeholder", str).val("").focus().blur(); 
}); 

Если вы хотите, чтобы сделать это, когда входное значение на самом деле присутствует в DataList:

$("#ItemSelect").change(function() { 
    var str = $(this).val() + " ";. 

    $('datalist option').each(function() { 
     if($(this).text() === str) { 
      $("#Placeholder").attr("placeholder", str).val("").focus().blur(); 
     } 
    }); 
}); 
Смежные вопросы