2013-07-15 47 views
0

作品我有一个AJAX提交的表单使用以下AJAX保存按钮,但没有图像

$('#savelink').click(function(){ 
$("#overlay_form").fadeOut(500); 
$.ajax({ 
    url: 'linktextadd.php', 
    type: 'GET', 
    data: "content="+$("input[id=linktext]").val(), 
    dataType:"json", 
    success: function(data){ 
     location.reload(); 
    }, 
    error: function(jqXHR, textStatus, errorThrown){ 
     alert(jqXHR+" || " + textStatus+" || " +errorThrown) 
    } 
    }); 

})

如果我使用一个标准按钮

<input id='savelink' type="button" value="Save" /> 

它工作正常但如果我尝试漂亮的东西与图像

<input id='savelink' type="image" src="images/large-save.png" alt="Save" value="Save" title="Save" /> 

它抛出一个错误(textstatus)“错误” - 有用的:P

看起来它甚至没有获得到PHP页面作为邮件()标志有没有被触发

如果我将相同输入代码的类型更改为按钮,它将再次起作用

<input id='savelink' type="button" src="images/large-save.png" alt="Save" value="Save" title="Save" /> 

但当然我失去了漂亮。

想法?

[解决方法]只是为了说清楚,这里是解决方案

$('#savelink').click(function(e){ 
    e.preventDefault; 
    $("#overlay_form").fadeOut(500); 

回答

2

当你设置的输入image的类型,按钮则充当submit按钮。这意味着您需要抑制一个提交事件。

$('#savelink').click(function(evnt){ 
    evnt.preventDefault(); 
    ... 
+0

唉唉......冷静。谢谢。不能再接受10分钟 – Steve

+0

再次感谢,只是做.click(e)工作正常。但通过你的答案,然后更新我已经学到了一些东西 - 这总是很好 – Steve

0

你可以使用一个<button>

<button id="savelink"><img src="images/large-save.png" alt="Save"></button> 
+2

他会有完全相同的问题,按钮还带有提交事件,这是问题... – marteljn