Javascript Jquery:如何仅从元素的存在触发模态窗口
如果提交时出现一个或多个错误,我有一个表单可以生成以下标记:Javascript Jquery:如何仅从元素的存在触发模态窗口,javascript,jquery,modal-dialog,Javascript,Jquery,Modal Dialog,如果提交时出现一个或多个错误,我有一个表单可以生成以下标记: <ul class="memError"> <li>Error 1.</li> <li>Error 2.</li> </ul> 错误1 错误2 我想将此元素设置为提交后显示的模式窗口,单击即可关闭。我有jquery,但找不到触发模式窗口的正确事件。以下是我使用的脚本,改编自: // 我已经为#mask和.memError设置了与的样式非
<ul class="memError">
<li>Error 1.</li>
<li>Error 2.</li>
</ul>
- 错误1
- 错误2
我想将此元素设置为提交后显示的模式窗口,单击即可关闭。我有jquery,但找不到触发模式窗口的正确事件。以下是我使用的脚本,改编自:
//
我已经为#mask
和.memError
设置了与的样式非常相同的样式,但是在加载ul.memError
时无法显示任何内容。我已经尝试过其他的方法来蒙混过关,但我还没有掌握实现这一点所需的javascript
有人能给我指出正确的方向吗?我玩过现场直播之类的游戏,但似乎找不到触发它的方法。在插入新项以触发自定义事件时,可以使用一些内联代码 不确定这是否适合您的实现 在“memError”中的这些错误是使用ajax还是HTTP页面加载加载的 看一看这个例子,不是回答所有你需要的,而是可能给你一些想法,不过这是一个onclick事件。但如果您的错误是使用一些ajax显示的,那么您可以将其更改为当ajax错误加载到页面中时。我稍后会尝试更新它
$(function() {
$('#clickMe').click(function(event) {
var mytext = $('#myText').val();
$('<div id="dialog">'+mytext+'</div>').appendTo('body');
event.preventDefault();
$("#dialog").dialog({
width: 600,
modal: true,
close: function(event, ui) {
$("#dialog").remove();
}
});
}); //close click
});
<h3 id="clickMe">Open dialog</h3>
<textarea cols="0" rows="0" id="myText" style="display:none">Some hidden text display none</textarea>
$(函数(){
$('#clickMe')。单击(函数(事件){
var mytext=$('#mytext').val();
$(''+mytext+'').appendTo('body');
event.preventDefault();
$(“#dialog”).dialog({
宽度:600,
莫代尔:是的,
关闭:功能(事件、用户界面){
$(“#对话框”).remove();
}
});
});//关闭单击
});
打开对话框
某些隐藏文本显示“无”
如果这是一个普通的旧表单提交,那么只需在document.ready上选中$('.memerror').length>0即可。。如果这是真的,那么做其余的。您不需要添加加载事件处理程序,因为ul已经加载。如果是ajax提交,那么您应该使用的是成功事件,它看起来好像您试图订阅的对象在您给出的示例中是错误的。尝试改用窗体的事件。您应该使用submit()
事件,而不是表单按钮(或任何其他元素)上的单击事件,因为在填写表单时,用户无需单击按钮即可轻松提交表单。这使模态窗口的显示更加可靠
<script type="text/javascript">
$(document).ready(function() {
$('form').submit(function() {//<- Submit event
// ...
// Modal Window Code ommitted
// to make example code more clear
// ...
// From what I understand, the following line
// is the "magic" that makes the modal window display
// (I haven't tested this code)
$(id).fadeIn(2000);
});
});
</script>
$(文档).ready(函数(){
$('form').submit(function(){/这是解决我的问题的触发器:
if ($('.memError').length > 0) {
$(function() {
// ...
});
}
感谢Scott!这是一个简单的旧表单提交,错误消息出现在HTTP页面加载之后,并且if($('.myElement').length>0)
使我能够做到。您希望在提交之后发生这种情况(文档准备就绪)还是ajax提交?顺便问一下,ul没有加载事件>您希望在提交之后发生这种情况吗(文档准备就绪)还是ajax提交?它是非ajax提交,文档准备就绪。本质上,如果指定的ul存在,我只需要这样做。
if ($('.memError').length > 0) {
$(function() {
// ...
});
}