好的,这里是这样的场景:应用程序是用Ajax构建的,请求我们需要多少服务?(我不会为此验证任何内容,但我应该这样做)
假设我们给出5个作为输入,表单返回5个框和一个提交按钮
<script>
function test(){
var num = $('#numServ').val();
var form = "";
form += "<form name='form2' id='services' method='POST' action='<?php echo $_SERVER['PHP_SELF'];?>'>";
for(m=0;m<num;m++){
// alert("<br>Voice le param"+m);
form += "<br><input type='text' name='services"+m+"' value=''>";
}
form += "<input type='submit' name='services' id='btnServices' value='SERVICES'>";
form += "</form>";
alert(form);
$('#generated').append(form)
}
</script>
这部分工作..。但是,当我尝试使用Ajax提交表单时,这个Ajax调用的函数被放在document.ready函数中,它不能工作。
$('#form2').submit(function(){
alert("Form Submitted");
/*
THE WHOLE CODE COMMENTED OUT IT STILL WON'T WORK
var result = $(this).serialize();
alert(result);
$.ajax({
url:"./content.php",
data: result,
type: "POST",
// cache:false,
dataType:"html",
success: function(data,jqXHR){$('body').append(data);},
error: function(){alert('Check Ajax request');},
complete:function(){alert("Ajax complete");}
});
*/
return false;
});
我已经做了好几天了。任何其他不是使用jquery构建的表单都可以使用此方法工作,因为表单已经加载到页面上,而不是由ajax动态生成的。
我认为我的问题在于Ajax在页面加载后制作表单...尽管我对sumit进行了Ajax调用,但表单位于document.ready函数的头部。
有什么想法吗?
发布于 2013-04-07 00:43:23
jQuery正在侦听ID为form2
的元素上的提交事件,但您的表单名为services
。
而且,看起来您是在动态构建表单,因此提交事件可能不会触发,因为jQuery在表单存在之前就加载了。
如果是这种情况,请尝试使用$(#[ID of parent element that exists on page load]).on('submit', function() {...});
更新
jQuery .on() documentation有很多有用的信息。简而言之,事件在DOM中“冒泡”。通过将侦听器添加到页面加载上存在的元素中,它可以捕获发生在其子元素上的事件。
看起来您是在将表单附加到一个ID
为“generated”的元素上...如果页面加载时存在此元素,则应执行以下操作:
$('#generated').on('submit', function() {
alert("Form Submitted");
var result = $(this).serialize();
alert(result);
$.ajax({
url:"./content.php",
data: result,
type: "POST",
// cache:false,
dataType:"html",
success: function(data,jqXHR){$('body').append(data);},
error: function(){alert('Check Ajax request');},
complete:function(){alert("Ajax complete");}*/
});
return false;
});
发布于 2013-04-07 00:39:32
您的jQuery正在寻找具有id='form2'
的表单,但是您的表单创建函数设置了id='services'
,因此jQuery没有运行,因为它没有匹配任何内容。
更改:
$('#form2').submit(function(){
至:
$('#services').submit(function(){
https://stackoverflow.com/questions/15857530
复制相似问题