javascript - 如何提交带有已创建的附加内容的 <a> 的表单

标签 javascript jquery forms submit

这是我目前拥有的:

var popupContent = ''
    function createMessage(msg,pl) {
        return [
            "<p>" + msg + "</p>",
            "<form action='" + pl + "' method='post' accept-charset='utf-8'>",
                "<ul class='cd-buttons no_margin'>",
                    "<li><a class='submit'>Yes</a></li>",
                    "<li><a class='popup-close'>No</a></li>",
                "</ul>",
            "</form>",
            "<a class='cd-popup-close popup-close img-replace'>Close</a>"
        ].join('');
    }

    //Accept Employement Request
    $('.popup1').on('click', function() {
        employeeName = $(this).siblings('.js-employee-name').text();
        var message = "Are you sure you want to hire <b>" + employeeName + "</b>?"
        var postLink = "/hire-employee"

        createMessage();

        $(".cd-popup-container").append( createMessage(message, postLink) );
    });

    $('.submit').click(function(){
        $('form').submit();
    });

但这似乎不起作用。

那么,当单击该类的“提交”时,如何提交由 createMessage 函数创建的表单?

非常感谢。如果我不够清楚,请告诉我。

最佳答案

我建议您使用<button>而不是 anchor 并使用按钮的默认行为。

使用

<button class='submit'>Yes</button>
<小时/>

但是,解决您眼前的问题。

当前您使用的称为“直接”绑定(bind),它仅附加到代码进行事件绑定(bind)调用时页面上存在的元素。

Delegated events have the advantage that they can process events from descendant elements that are added to the document at a later time.

当您动态创建元素时。

您需要使用Event Delegation 。您必须使用.on()使用委托(delegate)事件方法。

一般语法

$(staticParentElement).on(event, selector, eventHandler); 

示例

$(".cd-popup-container").on('click', '.submit', function(event){
    $('form').submit();
    event.preventDefault(); //Cancel default behaviour of anchor
});

关于javascript - 如何提交带有已创建的附加内容的 <a> 的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32189420/

相关文章:

javascript - 缩小代码后 Linkedin 注册按钮出错

javascript - 如何从 Iframe 内部的选择框中获取选定的值,并将其显示在外部?

jQuery $.ajax,错误处理程序不起作用

javascript - $.fn.<新函数> 'is not a function' jQuery

PHP - MySQL INSERT 查询不适用于表单操作

javascript - 在表单上设置规则

Javascript/Jquery 无法将 dom 元素设置为 ajax 结果

javascript - 设置数组索引属性时调用 `Object.prototype` setter 的原因

javascript - 在没有实例的情况下结束 REPL 服务器

c# - 拆分容器控件是否自动调整窗体大小?