2014-01-28 3 views
0

Вот код. «ON change» работает нормально. Но после изменения значения элемента #record_record_type, «On focus» не работает, потому что значение #record_record_type все равно остается неизменным. Пожалуйста, помогите мне.Дом не изменен после события смены

$(document).ready(function() { 
    var current = "A"; 
    $("#record_record_type").on('change keypress paste focus textInput input', function() { 
     if($("#record_record_type").val() == "TXT") { 
      $('#numeru').html('<textarea cols="40" id="record_ttl" name="record[data]" rows="20"></textarea>'); 
      $("#record_record_type").val("TXT"); 
      current = "TXT"; 
     } else if($('#record_record_type').val() == "MX") { 
      $('#numeru').html('<input id="record_data" name="record[data]" size="30" type="text">'); 
      $('#numeru').append('<label>Приоритет MX</label><input id="record_data" name="record[mx_priority]" size="30" type="text">'); 
      current = "MX"; 
     } else { 
      $('#numeru').html('<input id="record_data" name="record[data]" size="30" type="text">'); 
     }; 
    }); 

    $("#record_data").focus(function() { 
     if($("#record_record_type").val() == "A"){ 
      $("#new_record").validate({ 
       rules:{ 
        "record[data]": { 
         required:true, 
         ipv4: true 
        } 
       }, 
       submitHandler: function(form){ 
        showLoadingScreen(); 
        $(form) 
         .submit() 
         .always(function(){ hideLoadingScreen() }); 
       } 
      }); 
     } 
    }); 
}); 

Но

+0

Как вы создаете свой контроль с помощью JavaScript, вам нужно использовать делегированное событие, чтобы вызвать какое-либо событие на нем ... –

ответ

0
$("#record_record_type").on('change keypress paste focus textInput input', function() { 
    //Put this in the end after your condition checks 
    $("#record_record_type").blur(); 
} 
+0

Это не помогает. – pahan40

+0

@pahan Я добавил еще один ответ, если это вам поможет – Makrand

0

Вы можете попробовать использовать вместо этой строки:

$("#record_data").focus(function() { 

это

$("#record_data").on('focus', function() { 

Он будет реагировать сразу после изменения.

+0

Я также попытался использовать $ ("# record_data"). On ('focus', function() { Это не имело никакого эффекта. используйте «live», я получаю ошибку Uncaught TypeError: Object [object Object] не имеет метода 'live' – pahan40

+0

@ pahan40 thats, потому что live устарел в последнем jquery – Makrand

0

Вы также можете использовать это, может быть:

$("#record_record_type").on('change keypress paste focus textInput input', function() { 
    //Put this in the end after your condition checks 
    $("#record_record_type").blur(); 
    $("#record_data").focus(); 
} 
+0

Это также не помогает – pahan40

+0

Вы хотите, чтобы запись_данных была сфокусирована правильно после того, как ваш record_record_type срабатывает? – Makrand

+0

Я думаю, что это моя вина. мое объяснение очень плохо, извините.) Я хочу, чтобы после того, как акцент на проверке #record_data $ («# new_record»). проверки ({ делает не работает, если v кроме "A". Но он всегда работает, потому что значение #record_record_type все еще A навсегда. – pahan40

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