2013-05-30 2 views
0

У меня есть два элемента управления на моей странице. Текстовое поле и радиообъектив. Оба они запускают мероприятие, и с ними справляются. В каждом дескрипторе данные из элемента управления используются для вызова службы отдыха.jquery events: (иногда) обрабатывает два события одновременно

В псевдокоде:

If textbox has focus lost -> call restText(textbox.value) 
If radiobutton is clicked -> call restRadio(radiobutton.value) 

До сих пор, так хорошо. Требование в настоящее время является то, что если радио щелкнул и текстовое поле теряет фокус в то же время, он должен реагировать так:

If radiobutton is clicked && textbox has focus lost **before** -> call restBoth(radiobutton.value, textbox.value) 

Ну, ключевое слово перед тем мой вопрос. Как я могу обрабатывать оба события одновременно и не потерять фокус текстового поля до радиообмена?

+0

Ничего нет. Я не знаю, как «игнорировать» событие текстового поля, если нажимается радио. Фокус утерян, всегда срабатывает, и ajax возвращается с новым рендерингом контента, который как бы «теневой» радио-событие. –

ответ

0

Попробуйте это:

<form name='emailSubmit' action='' method='post'> 
    <input type='text' id='email' value='I am text :)' /> 
    <input type='radio' name='accept' /> I am radio 1 :) 
    <input type='radio' name='accept' /> I am radio 2 :) 
    <input type='radio' name='accept' /> I am radio 3 :) 
</form> 

Ваш код Java Script

<script> 
var e = true; 
$(function() { 
    $("input:radio['name'='accept']").click(function() { 
     radioClick(); 
    }); 

    $("#email").blur(function() { 
     focusOutText(); 
    }); 
}); 

function focusOutText() { 
    alert("Focus gone from TEXT"); 
    e = false; 
}; 

function radioClick() { 
    if (!e) { 
     focusOutText(); 
    } 
    alert("You clicked radio he he he.."); 
}; 
</script> 

Вы можете запустить здесь: Fiddle

+0

Большое спасибо за ваш блеск Neeraj. Проблема в том, что ваш код работает не так, как ожидалось, если в текстовом поле все еще есть внутренняя часть. В этом случае теряется только фокус. –

+0

Забудьте об этом. Все в порядке. Я не понял. Все хорошо сейчас :-) –

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