Я пытаюсь использовать 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 - это идентификатор этой кнопки отправки формы.
Все идентификаторы должны быть уникальными. Создайте уникальные идентификаторы для форм. Затем используйте:
$("#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>");
});
});
Ответ на ваш вопрос не достигнет того, что вы хотите сделать, так как запуск клика по submit (по javascript) не представит форму. Это, однако, будет, если вы DOM - это то, что я думаю:
$(".div_btn").click(function () {
$(this).closest('form').submit();
});
Пытаться:
$('.div_btn').click(function () {
$(this).parent().find('#my_submit').trigger('click');
});
$('#my_submit').trigger("click")
? (Изменить: я перечитал вопрос ... Идентификаторы должны быть уникальными.)