[英]can't disabled anchor tags using jquery… nither with “disabled” nor with e.preventDefault() during ajax call()
[英]Image isn't posting while using e.preventDefault() in jquery ajax
使用jquery ajax发布表单时遇到有线问题。 我有多个图像上传字段。 当我使用e.preventDefault()函数时,图像未上传。 但是当我禁用此代码。 它仍然很好。 这是我的标记,js和php的代码段
HTML
<form class="shoform" id="contact-entry" name="contact-entry" action="project-up-eng.php" method="post" enctype="multipart/form-data">
<input class="pic" id="img" type="file" multiple="multiple" name="imgfile[]" />
<input class="submitbtn" id="submitbtn" type="submit" value="Add"></input>
</form>
JS
$("#submitbtn").click(function(){
$("#contact-entry").submit(function() {
/* Act on the event */
e.preventDefault();
$.post('project-up-eng.php',$(this).serialize(), function()
{
alert("OK");
});
});
});
PHP:
mkdir("projects/".$_POST['name']);
$path="projects/".$_POST['name'];
for($i=0;$i<count($_FILES['imgfile']['size']);$i++)
{
$file = $path."/".$_FILES['imgfile']['name'][$i];
move_uploaded_file($_FILES['imgfile']['tmp_name'][$i],$file);
}
不幸的是,您无法使用经典HTML通过AJAX提交包含文件的表单。 当您调用e.preventDefault()
,不会执行常规文件上传,并且您手动调用的$.post
无法执行您想要的操作。
您可以在具有新HTML 5功能的新浏览器中使用JavaScript上传。 请参阅“ 如何使用AJAX上传文件 ”。
您没有提及要在哪个元素上禁用默认事件功能。
当前,有两个元素#submitbtn和“#contact-entry”
如果您想防止#submitbtn
$("#submitbtn").click(function(e){ // just check e in the bracket
e.preventDefault();
$("#contact-entry").submit(function() {
/* Act on the event */
// e.preventDefault(); this line removed
$.post('project-up-eng.php',$(this).serialize(), function()
{
alert("OK");
});
});
});
如果要防止#contact-entry
$("#submitbtn").click(function(){
$("#contact-entry").submit(function(e) { // just check e in the bracket
/* Act on the event */
e.preventDefault();
$.post('project-up-eng.php',$(this).serialize(), function()
{
alert("OK");
});
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.