JQuery: $ (this) .parent (). $ («# SOME_ELEMENT'S_ID_THATS_INSIDE_THE_PARENT»)?

0

Я пытаюсь использовать div как кнопку отправки для html-формы, потому что мне не нравится, как выглядит кнопка по умолчанию. Проблема в том, что у меня есть несколько одинаковых форм и div-кнопок на моей странице (они добавлены с jquery), поэтому у них нет уникального идентификатора. Когда у меня на моей странице больше одной формы, соответствующая div-кнопка представляет первую форму.

Каждая div-кнопка и форма расположены в контейнере большего размера. Можно ли сделать что-то вроде:

$(".div_btn").click(function () {
    $(this).parent().$(".my_form").$("#my_submit").trigger("click")
}); 

где.div_btn - это div, который я использую в качестве кнопки,.my_form - это класс форм, а #my_submit - это идентификатор этой кнопки отправки формы.

  • 2
    У меня такое ощущение, что вы используете идентификаторы неправильно. Если у вас есть идентификатор, почему бы не просто $('#my_submit').trigger("click") ? (Изменить: я перечитал вопрос ... Идентификаторы должны быть уникальными.)
  • 3
    покажи нам свой HTML
Теги:
forms

3 ответа

2

Все идентификаторы должны быть уникальными. Создайте уникальные идентификаторы для форм. Затем используйте:

$("#uniqueFormId").submit();

Что касается создания уникальных идентификаторов, то быстрый пример:

HTML:

<button id="formAdder">Add Form</button>
<div id="formHolder">
</div>

JQuery:

$(document).ready(function() {
  $("#formAdder").click(function() {  
    var formNum = $("form").length;   
    $("#formHolder").append("<form id='uniqueForm" + formNum + "'>Form Id is uniqueForm" +formNum+"</form>");
  });
});

Скрипки.

  • 0
    Эй, Мэтью, я бы хотел это сделать, но я добавляю формы на страницу с помощью JQuery. Таким образом, вы нажимаете кнопку, и форма создается, позволяя пользователю создавать столько, сколько он хочет. Было бы полезно, если бы вы могли дать мне знать, как это сделать, присваивая каждой форме уникальный идентификатор.
2

Ответ на ваш вопрос не достигнет того, что вы хотите сделать, так как запуск клика по submit (по javascript) не представит форму. Это, однако, будет, если вы DOM - это то, что я думаю:

$(".div_btn").click(function () {
    $(this).closest('form').submit();
}); 
1

Пытаться:

$('.div_btn').click(function () {
    $(this).parent().find('#my_submit').trigger('click');
});
  • 0
    ты герой :)
  • 1
    Хотя это может работать, вы никогда не должны использовать один и тот же идентификатор более одного раза. Это может вызвать ошибки позже в разработке. Я обновил свой ответ, чтобы указать, как создавать уникальные идентификаторы формы на лету.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню