2015-09-16 4 views
0

Я использую MySQL и ajax, чтобы вытащить определенную информацию из таблицы, а затем передаю одно из этих значений переключателю.JQuery - Передача входных значений радиокнопке

Пользователь вводит свой идентификационный номер, и он автоматически добавляет полное имя, адрес электронной почты и менеджер из таблицы MySQL.

Затем я передаю значение менеджера переключателю, но он не работает, если я фактически не нахожусь в поле ввода менеджера.

Я попробовал, размыл, изменил, keyup, focusin/out, но все еще не передал значение, пока я на самом деле не нажму на поле ввода.

ОБРАТИТЕ ВНИМАНИЕ - он отлично работает, если вручную добавить значение в поле менеджера.

Любые идеи?

<input type="text" name="id" id="id" value="" > 
<input type="text" class="hidden" name="name" id="name" value="" > 
<input type="text" class="hidden" name="email" id="email" value="" > 
<input type="text" class="hidden" name="manager" id="manager" value="" > 

<input type="radio" name="defaultmanager" id="defaultmanager" value=""> 
<label for="defaultmanager" id="defmanager" >Default manager:</label> 

<input type="radio" name="reason" id="otherreason" value="">Other 
<input type="text" name="otherreason" /> 

<script> 
$('#manager').bind("change paste keyup", function() { 
var val = $(this).val(); 
$('#defmanager').text('Default Manager:' + val); 
}); 
</script> 

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

Вот код, который автоматически добавляет имя, адрес электронной почты и менеджер:

$(function() { 
    $("#id").on('blur' , function() { 
     $('#table1 tr').removeClass("hidden"); 
     // getting the value that user typed 
     searchString=$(this).val(); 

     // forming the queryString 
     var data = 'telefoon='+searchString; 

     // if searchString is not empty 
     if(searchString) { 
      // ajax call 

      $.ajax({ 
       type: "POST", 
       url: "query2.php", 
       data: data, 

       success: function(html){ // this happens after we get results 
        result = String(html).split("|"); 

        $("#name").val(result[0]); 
        $("#email").val(result[1]); 
        $("#manager").val(result[4]); 
       } 
      });  
     } 
     return false; 
    }); 
}); 

+1

Вы выполняете только функцию, когда происходит 'paste',' change' или 'keyup'. – Lauromine

+0

Я не вижу никакого кода, почему на самом деле устанавливает радио? Отсутствует ли какой-либо код? – BenG

+0

Я поставил ваш точный код в JSFiddle (http://jsfiddle.net/xh40mxye/) и, похоже, обновил ярлык только на всех трех событиях, которые вы связали ('paste',' change', 'keyup'). В чем проблема? –

ответ

0

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

$("#manager").val(result[4]).change(); 

полный, рабочий пример здесь:

$('#manager').bind("change paste keyup", function() { 
 
    var val = $(this).val(); 
 
    $('#defmanager').text('Default Manager:' + val); 
 
}); 
 

 
//Set value of the manager field from the database here 
 
$('#manager').val('Bob Marley').change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="id" id="id" value="" > 
 
<input type="text" name="name" id="name" value="" > 
 
<input type="text" name="email" id="email" value="" > 
 
<input type="text" name="manager" id="manager" value="" > 
 

 
<input type="radio" name="defaultmanager" id="defaultmanager" value=""> 
 
<label for="defaultmanager" id="defmanager" >Default manager:</label> 
 

 
<input type="radio" name="reason" id="otherreason" value="">Other 
 
<input type="text" name="otherreason" />

+0

Я пробовал свой код, но он работает, только если я нажму на поле ввода менеджера. Я также попытался добавить $ ("# manager"). Val (результат [4]); к набору ajax-кода, но он не работает. – JCD

+0

@JohnDarville Я взял '$ (« # manager »). Val (результат [4]);' from ** your ** code. Я изменил его, чтобы добавить '.change()', который вы можете увидеть в фрагменте. –

0

я предполагаю, что есть миллион способов, чтобы сделать все. Я не знаю, почему я не думал ясно. :(Вот что я в итоге сделал:

$(function() { 
$("#id").on('blur' , function() { 
    $('#table1 tr').removeClass("hidden"); 
    // getting the value that user typed 
    searchString=$(this).val(); 

    // forming the queryString 
    var data = 'telefoon='+searchString; 

    // if searchString is not empty 
    if(searchString) { 
     // ajax call 

     $.ajax({ 
      type: "POST", 
      url: "query2.php", 
      data: data, 

      success: function(html){ // this happens after we get results 
       result = String(html).split("|"); 

       $("#name").val(result[0]); 
       $("#email").val(result[1]); 
       $("#manager").val(result[4]); 
       $("#defmanager").val(result[4]); 
      } 
     });  
    } 
    return false; 
}); 

});

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