Как связать событие для всех входов формы? - PullRequest
7 голосов
/ 25 января 2012

У меня есть форма с входами (с идентификаторами). И мне нужно привязать одно событие, чтобы щелкнуть по любому входу в этой форме.

Теперь я использую эту конструкцию:

    $("#siteAdress").click(function(){
        $("#reg-login").click();
    });
    $("#phoneNumber").click(function(){
        $("#reg-login").click();
    });
    $("#reg-email").click(function(){
        $("#reg-login").click();
    });
    $("#reg-login").click(function(){
        // DO SOMETHING
    });

Как это оптимизировать?

Ответы [ 5 ]

16 голосов
/ 25 января 2012

Самый простой способ - добавить класс ко всем элементам, с которыми вы хотите связать, и использовать его:

$(".event-user").click(function() { /* do something */ })

Если это не вариант, вы можете использовать id для вашей формы и запросить все входные дочерние элементы:

$("#my-form input[type=text]").click(function() { /* do something */ })

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

$("#siteAddress, #phoneNumber, #reg-email, #reg-login")
    .click(function() { /* do something */})
2 голосов
/ 25 января 2012

В зависимости от типов входов, которые вы имеете, вы можете сделать это широко или детально.Например, если все они являются элементами типа input, просто сделайте это широко:

$('input').click(function(){ ... });

В противном случае, если вы хотите сделать это специально для типов ввода текста, например, вы можете сделать это:

$('input[type="text"]').click(function(){ ... });

Это все в селекторах!Надеюсь, это поможет ...

1 голос
/ 08 сентября 2017
   $('form input').click(function (e) {
            SearchForm();//Call function you want
            return false; 
        });

   $('form input').keypress(function (e) {
            SearchForm();//Call function you want
            return false; 
   });
1 голос
/ 25 января 2012

Используйте это

$("form input:text").click(function(){
  $("#reg-login").click();
});
0 голосов
/ 26 января 2015

Вы должны использовать общий> знак.Это означает, что вы можете получить идентификатор формы, а затем с помощью одной строки добавить функцию щелчка ко всем дочерним элементам:

$('#formId > input').each(function () {
    $(this).click(function () {
        //SOME CODE - btw you can ge the value with this.value;
    })
});

надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...