2014-12-11 8 views
1

Как вызвать событие click в текстовом поле?Как вызвать событие click в текстовом поле?

Я пробовал:

JQuery

$(document).ready(function(){ 
$('#txtid').val('something'); 
$('#txtid').trigger('click'); 
}); 

HTML

<textarea id='txtid' rows='5' cols='20'></teaxtarea> 

Но щелчок не произошло. Что не так в коде.

Я попытался событие фокуса как этого

$('#txtid').focus(); //this worked 

Но мне нужно, чтобы вызвать событие щелчка после получения значения в текстовое поле.

Пожалуйста, помогите ..

+0

Инициирование события будет запускать определенную функцию - не родную функцию. – tymeJV

ответ

2

Сначала вы должны установить обработчик события щелчка.

Редактирование 1: Поскольку вы пытаетесь вызвать событие клика в документе готовым, вы должны объявить обработчик события клика внутри обработчика событий документа, даже перед его запуском.

Html:

<textarea id='txtid' rows='5' cols='20'></textarea> 

JQuery:

$(document).ready(function(){ 
    $('#txtid').click(function() { alert('clicked'); }); 
    $('#txtid').val('something'); 
    $('#txtid').trigger('click'); 
}); 

Fiddle: http://jsfiddle.net/j03n46bf/

Edit 2:

Так как вы хотите, чтобы событие, которое срабатывает после того, как вы получите значение на ваше текстовое поле, Mi Lind Anantwar правильно, вы должны использовать OnChange событие:

же Html, разные JQuery:

$(document).ready(function(){ 
    $('#txtid').change(function() { alert('Value changed'); }); 
    $('#txtid').val('something'); 
    $('#txtid').trigger('change'); 
}); 

Fiddle: http://jsfiddle.net/sb2pohan/

Edit 3:

После некоторых комментариев:

$(document).ready(function(){ 
    $('#txtid').click(function() { changeDiv(); }); 
    $('#txtid').focus(); // Set Focus on Textarea (now caret appears) 
    $('#txtid').val('something'); // Fill content (caret will be moved to the end of value) 
    $('#txtid').trigger('click'); // Click Handler will be executed 
}); 

function changeDiv() { 
// do some stuff; 
} 

Редактировать 4: Рабочее испытание.HTML (Протестировано в IE, FF, Chrome):

<html> 
    <head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#txtid").click(function() { changeDiv(); }); 
       $("#txtid").focus(); 
       $("#txtid").val("value"); 
       $("#txtid").trigger("click"); 
      }); 
      function changeDiv() { 
       $('#changeDiv').css("background-color","red"); 
       $('#changeDiv').html("changed content"); 
      } 
     </script> 
    </head> 
    <body> 
     <textarea id="txtid"></textarea> 
     <div id="changeDiv" style="background-color: green; width: 100px; height: 100px;">start content</div> 
    </body> 
</html> 
+0

Мне нужно, чтобы onclick запускался на странице onload, и курсор должен мигать на textarea. Надеюсь, ты это понял! – Santhucool

+0

Хорошо, нажмите tirggerd на загрузке страницы, решается в моем первом фрагменте JavaScript Что вы подразумеваете под «курсор должен мигать на textarea»? – Mandalorserbe

+0

Я имею в виду, когда мы вводим что-то, что указатель я имею в виду, это курсор, я пробовал свой код, но курсор не придет !! Мое требование состоит в том, что при загрузке страницы я заполняю некоторый контент в текстовую область, и после этого он должен запускать событие click или onchange без взаимодействия с пользователем! – Santhucool

1

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

$('#txtid').trigger('change'); 
+0

Мне нужно, чтобы onclick запускался на странице onload, и курсор должен мигать на textarea. Надеюсь, ты это понял! – Santhucool

-1

Просто $('#txtid').click(); будет инициировать событие щелчка.

+0

(вздох). Я очень устаю от людей, которые нигде не комментируют. Какова ваша сделка? – philtune

+0

Есть надпись, чтобы сбалансировать ее, lol. –

+0

Я не остановился, но пользователь уже пробовал это, и это не сработало. –

0

Как documentation говорит, событие щелчка/Изменить потребности выхода в том, что работает так что ваши Javascrtipt должны быть:

$(document).ready(function(){ 
$('#txtid').val('something'); 
    $('#txtid').on('change', function(){ 
    alert('hi!!!!!'); 
    }) 
$('#txtid').trigger('change'); 
}); 

LIVE DEMO

+0

Перед запуском события необходимо объявить обработчик события клика. Ваше решение работает, только если вы нажмете текстовое поле. Но запуск события click на готовом документе не вызовет вашего обработчика, потому что в тот момент он не объявлен – Mandalorserbe

+0

мммм, который работает http://jsfiddle.net/wabttk8y/, но нужно ли идти по логике, что вы говорите, что это правда , мы добавляем событие клика, которое не существует. –

+0

Правда, я думаю, что решение было бы использовать событие изменения, потому что оно должно быть triggerd, ПОСЛЕ того, как значение в текстовой области – Mandalorserbe

0

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

http://jsfiddle.net/gfkjs5ps/

$(document).ready(function(){ 
    $('#txtid').val('something'); 
    $('#txtid').click(function(){alert("clicked");}); //define click listener 
    $('#txtid').click(); //click text area 
});