我使用来自bassistance.de的jQuery验证器插件(1.11)并通过php提交.现在我在javacript代码末尾的提交处理程序中添加了一个ajax调用,但调用不起作用,对于firebug控制台也不存在.
情况1如果我将ajax调用放在站点的开头,它可以工作,但不再看到验证器插件.
情况2如果我把调用放在提交处理程序中,它就不存在,表单由php提交.
案例3 如果我把代码放在页面的末尾,联系表格仍然由php提交.
这是ajax调用:
$("#contactform").submit(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "formfiles/submit.php",
data: $(this).serialize(),
success: function() {
$('#contactform').html("<div id='message'></div>");
$('#message').html("<h2>Your request is on the way!</h2>")
.append("<p>someone</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/ok.png' />");
});
}
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
谁知道什么是错的?
在此先感谢您提供任何帮助,对此我一直在努力.
编辑 为了更好地理解问题,这里是完整的JavaScript
$(document).ready(function(){
$("#contactform").validate();
$(".chapta").rules("add", {maxlength: 0});
var validator = $("#contactform").validate({
ignore: ":hidden",
rules: {
name: {
required: true,
minlength: 3
},
cognome: {
required: true,
minlength: 3
},
subject: {
required: true,
},
message: …Run Code Online (Sandbox Code Playgroud) 我试图:not()在委托事件中使用选择器,例如
$('#sidebar-nav').on('click', 'a.documents:not(span)', function(e){
// code
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用。那么,如何编写委托单击事件以选择链接而不是其中的<span>元素?必须委派事件,因为所有链接都是动态添加的。
感谢您的任何提示。
我试图将fancybox iframe中的变量/值传递给父窗口但没有成功.
Fancybox是通过链接启动的
class="fancybox fancybox.iframe"
Run Code Online (Sandbox Code Playgroud)
我在fancybox.iframe中的代码是:
$(document).ready(function(){
$('.insert_single').click(function(){
var test = $('.members_body').find('{row.U_USERNAME}');
setTimeout(function(){ parent.$.fancybox.close();},300);return true;
});
});
Run Code Online (Sandbox Code Playgroud)
其中"{row.U_USERNAME}"是在iframe中查找的用户名.
然后,在父级中有以下代码:
$(document).ready(function(){
$('.fancybox').fancybox(
{
openEffect:'fade',
openSpeed:500,
afterClose: function(){
alert($(".fancybox-iframe").contents().find(test));
$('#form input[name=username]').val()(test);return false;
}
}
);
});
Run Code Online (Sandbox Code Playgroud)
但是当关闭fancybox时,没有警告显示变量"test",变量也不会显示为表单输入字段中的值或文本.
我已经阅读并尝试了在stackoverflow上找到的各种解决方案但没有成功.
在此先感谢您的帮助
编辑
这是一个例子
只是为了给出一个想法,我在这里尝试做的是一个示例代码:
$(function(){
if ($('.maybe > div > a.link:contains(".JPG, .jpg, .gif, .GIF")').length) {
alert('hello');
});
Run Code Online (Sandbox Code Playgroud)
我想检查一些链接的内容是否包含点和所有图像扩展名的字母,如
<div class="maybe">
<div>
<a class="link" href="someURL">thisIsAnImage.jpg</a>
<a class="link" href="someURL">thisIs**NOT**AnImage.pdf</a>
</div>
</div>
<div class="maybe">
<div>
<a class="link" href="someURL">thisIs**NOT**AnImage.zip</a>
<a class="link" href="someURL">thisIsAnotherImage.png</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
div和链接是由php动态生成的,所以一旦页面生成,就无法知道有多少链接和div.
如何以适当的方式编写代码?
非常感谢帮助我解决问题.
我正在构建一个动态网站,但由于错误,页面没有显示
致命错误:函数名必须是字符串php
在线上
$p= $_GET('p');
Run Code Online (Sandbox Code Playgroud)
包含文件的整个代码是
$folder = 'de/';
$folder = 'en/';
if(!empty($_GET['p'])){
$pages = scandir($folder,0);
unset($pages[0],$pages[1]);
$p= $_GET('p');
if(in_array($p.'.inc.php', $pages)){
include($folder.'/'.$p.'.inc.php');
}else{
echo 'error message';
}
}else{
include($folder.'home.inc.php');
}
Run Code Online (Sandbox Code Playgroud)
我的代码出了什么问题?
UPDATE
我已经更新了代码,但现在我收到了错误
*failed to open stream: No such file or directory*
Run Code Online (Sandbox Code Playgroud)
我正在使用本地服务器.
jquery ×4
javascript ×2
ajax ×1
directory ×1
dynamic ×1
fancybox-2 ×1
iframe ×1
include ×1
php ×1