jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery .submit()没有触发大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
做了很多搜索,但无法找出为什么我的jQuery .submit()不会触发.我也尝试使用.click()来提交按钮.

我目前有一个div模板(包括一个表单):

<div class="reply-to-exisTing-message" style="display: none">
        <form class="reply-message-form">
            <textarea id="post-reply-message-textarea" name="PostReplymessage[message]" rows="3" cols="40" style="resize: none"></textarea>
            <input class="reply-to-message-id" type="hidden" name="PostReplymessage[id]" />
            <input class="post-reply-message-submit" type="submit" value="Reply"/>
        </form>
    </div>

当单击回复按钮时,我将此附加到使用jQuery的消息(生成下拉回复表单,以便用户可以回复消息).这工作正常(使用firebug进行双重检查).

但是,当我单击提交按钮时,我的jQuery代码不会产生警报,因此它甚至不会触发.有人可以解释为什么会发生这种情况,谢谢! jQuery代码

$(document).ready(function() {
    $('.reply-message-form').submit(function() {
        alert('test');
        return false;
    }) ;
});

解决方法

如果您正在动态添加内容,那么对.submit()的静态调用将不起作用.这只会将事件处理程序绑定到运行时与选择器匹配的元素,因此在此之后添加的任何元素都不会绑定事件处理程序.

解决方案是事件委派,使用.on()功能

$(document).on('submit','.reply-message-form',function(E) {
    alert('test');
    return false;
});

理想情况下,您不是使用文档,而是选择最接近的静态(即页面加载时存在)元素,它将包含所有动态内容.

或者,如果您使用的是1.7之前的jQuery版本,因此无法访问.on()函数,则可以使用.delegate()函数

$(document).delegate('.reply-message-form','submit',function(E) {
    alert('test');
    return false;
});

大佬总结

以上是大佬教程为你收集整理的jQuery .submit()没有触发全部内容,希望文章能够帮你解决jQuery .submit()没有触发所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。