2013-06-26 3 views
4

возникла проблема с тем, что у меня есть страница формы, которую я открываю с помощью диалогового окна диалога jQuery. Но на этой странице мне нужно использовать событие .click для некоторых объектов, но это не работает. Код для этого случая - это простой запрос alert() с этой страницы.Событие Click не работает внутри диалогового окна jQuery

<input type='text' class='input_date' value='' readonly /> 

Поэтому я хочу получить предупреждение, когда я нажимаю на поле ввода внутри этой диалоговой формы.

$('.input_date').click(function() { 
    alert('hi') 
}); 

В чем проблема, как я могу получить эту работу? Благодаря

+0

Поместите скрипты непосредственно перед '' тег – Esailija

ответ

4

Это происходит потому, что вы не имеете объект, который вы хотите связать событие в момент JQuery выполнение.

Необходимо связать событие в родительском контейнере или использовать метод jquery getScript после загрузки вашего диалогового окна.

<div id="dialogContainer" /> 

$('#dialogContainer').on('click', '.input_date', function(){ 
    alert('hi'); 
}); 
+0

Эй мат большое спасибо за объяснение, и это теперь работает! Спасибо) – Sangsom

0

Другие варианты внутри document.ready:

$(".input_date").keyup(function(){ 
alert('hi'); 
}); 

или

$(".input_date").change(function(){ 
    alert('hi'); 
}); 
0

Поместите событие щелчка в открытом обратном вызове, например:

$(".selector").dialog({ 
    open: function(event, ui) { 
     $('.input_date').click(function(){ 
      alert("hi!"); 
     }); 
    } 
}); 
1

Если диалог HTML генерируется динамически, ваш клик обратный вызов обыкновения быть присоединен к «.input_date» elment. Используйте вместо этого:

$('.input_date').live('click',function() { 
    alert('hi') 
}); 
0

Это будет прекрасно работать вам просто нужно установить атрибут ReadOnly как этого:

<input type='text' class='input_date' value='' readonly="readonly"> 




     $('.input_date').click(function() { 

       alert('hello'); 
      }); 
0

Вы не дали документ готов функцию из JQuery. Вы можете сделать это

$(function() { 
// your code 
}); 

Образец для вашей программы

<html> 
<head> 
<title>Untitled</title> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script type="text/javascript"> 
$(function() { 
$(".input_date").bind("click", function(){ 
alert("hi"); 
}); 
}); 
</script> 
</head> 
<body> 
<input type='text' class='input_date' value='' readonly /> 
</body> 
</html>