2014-09-28 95 views
0

当我想使用jQuery ajaxForm时,我得到一个非常奇怪的问题。ajaxForm不工作,不返回错误

我想设置窗体并有进度百分比上传文件。

我的ajaxForm函数根本没有触发。

这里是我的代码,但我不能找出问题在哪里,因为我没有得到任何错误。

function recieve(res,obj) 
 
{ 
 
\t var frm = res.substr(1,res.length-8); 
 
\t $('#'+frm).find('.error').each(function(){ $(this).remove(); }); 
 
\t if(obj['alert']!=undefined) $(res).html(obj['alert']); 
 
\t if(obj['field']!=undefined) { 
 
\t \t for(var i in obj['field']) 
 
\t \t { 
 
\t \t \t /*$("#"+i).next('.error').remove();*/ 
 
\t \t \t if(obj['field'][i]!='') $("#"+i).after('<div class="error avesome OC OBC">'+obj['field'][i]+'</div>'); 
 
\t \t } 
 
\t } 
 
\t 
 
\t 
 
\t if(obj['msgbox']!=undefined) alert(obj['msgbox']); 
 
\t if(obj['location']!=undefined) document.location = obj['location']; 
 
} 
 

 
function sendAjax(form,response,loader,progress) 
 
{ 
 
\t var frm = $(form); 
 
\t frm.ajaxForm({ 
 
\t \t dataType: 'json', 
 
\t \t data: frm.serialize()+'&_ajax=1', 
 
\t \t 
 
\t \t beforeSend: function(){ 
 
\t \t \t $("input[type='submit']").attr('disabled','disabled'); 
 
\t \t \t $(progress).width('0%').parent('.progress').removeClass('hidd'); 
 
\t \t }, 
 
\t \t 
 
\t \t uploadProgress: function(event, position, total, percentComplete){ 
 
\t \t \t var pVel = percentComplete + '%'; 
 
\t \t \t $(progress).width(pVel); 
 
\t \t }, 
 
\t \t 
 
\t \t complete: function(data){ 
 
\t \t \t recieve(response,unserialize(data)); 
 
\t \t \t $(progress).parent('.progress').addClass('hidd'); 
 
\t \t \t $("input[type='submit']").attr('disabled',null); 
 
\t \t } 
 
\t }); 
 
\t return false; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<form id="setting_form" action="http://127.0.0.1/marketing/users/setting/" method="post" onsubmit="return sendAjax('#setting_form','#setting_form_result','#setting_form_loader','#setting_form_progress');"> 
 
    <input type="hidden" name="_submit" value="1" /> 
 
    <input type="hidden" name="data[setting][id]" id="setting_id" value="11" /> 
 
    <input type="hidden" name="data[setting][data-token]" id="setting_data-token" value="8022735" /> 
 
    <input type="hidden" name="data[setting][token]" id="setting_token" value="90e18fe55fbc38708456606f4b2b3f96" /> 
 
    <input type="submit" name="data[setting][submit]" id="setting_submit" value="send" /> 
 
    
 
    <div id="setting_form_progress" class="bar fade"></div> 
 
    <div id="setting_form_result"></div> 
 
</form>

+0

你可以尝试把警报在'sendAjax'功能,看看它的工作原理插入代码? – Hitesh 2014-09-28 15:19:17

+0

是的,ajaxform不工作? – Pooya 2014-09-29 08:22:33

+0

你是否在'sendAjax'函数中放置了警告? 当你运行没有警报来? ryt? – Hitesh 2014-10-01 18:11:49

回答

0

我想你错过了这个库 http://malsup.com/jquery/form/ 后 jQuery的

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script src="http://malsup.github.com/jquery.form.js"></script> 
+0

我也有他们... – Pooya 2014-09-28 14:43:39

+0

我认为有问题json 响应代码不正确 它发生在我身上一次,它不显示任何错误 只是js停止 – medhamza7 2014-09-28 14:48:41