JSON

Jquery ajax基础教程(2)

字号+ 作者:H5之家 来源:H5之家 2015-11-23 15:57 我要评论( )

这里可以看到includeProperties里所配置的外面一层json,success和resultMSG。这在实际中很好用。如果服务器中没有取得需要的值,虽然ajax访问成功,但是获得的结果并不算成功,因为没有取得需要的值。这里加入了su

这里可以看到includeProperties里所配置的外面一层json,success和resultMSG。这在实际中很好用。如果服务器中没有取得需要的值,虽然ajax访问成功,但是获得的结果并不算成功,因为没有取得需要的值。这里加入了success标示,方便前台jQuery操作。

基于其他方法获取服务器数据从写法上与get基本一致,如post方法、load方法。这里就不再赘述了。

3.动态提交表单

通过jQuery的AJAX支持,可以让我们很方便的动态提交表单而不用刷新页面。

如下面例子:

$('#letter-f form').submit(function(){

//调用preventDefault方法阻止事件冒泡,具体工作就是如果网页有脚本错误,那么则会阻止提交form表单

event.preventDefault();

var formValues = $('input[id="term"]').val();

var requestStr = {'term':formValues.toUpperCase()};

$.get('EGet.action', requestStr, function(data){

var responseObj = $.parseJSON(data);

if(responseObj.success == 'true')

{

var html = '';

var dataObj = $.parseJSON(responseObj.resultMSG);

html += "<div>";

html += "<h3>" + dataObj.term + "</h3>";

html += "<div>" + dataObj.part + "</div>";

html += "<div>";

html += dataObj.definition;

if(dataObj.quote){

html += '<div class="quote">';

$.each(dataObj.quote, function(lineIndex, line){

html += '<div class="quote-line">' + line + '</div>';

});

if(dataObj.author){

html += '<div class="quote-author">' + dataObj.author + '</div>';

}

}

html += "</div>";

html += "</div>";

$('#dictionary').html(html);

}

else{

var warning = $('Sorry, your term was not found!');

$('#dictionary').html(warning);

}

});

});

这个例子援引的数据还是上一个EGet.action所用的那个数据。程序的操作过程基本是:

首先调用这个 preventDefault();这个方法在注释里也说明了,用于阻止事件冒泡带来的不便与麻烦。

接下来通过$()获得input的元素,使用val方法获得其值,接下来的使用方法与上例基本相同。

这里也可以使用serialize方法将input元素序列化成如下格式“term=xxx”这样。不过由于服务器端的java程序中的那些数据时硬编码的,所有,不是太方便用,就没用。

4.关于Ajax的观察员函数

jQuery包含了2个全局的ajax观察员函数:ajaxStart和ajaxStop。

分别在执行ajax操作的起始和结束时调用。例如:

//ajax的观察员函数 ajaxStart 和 ajaxStop

$('<div id="loading">Loading...</div>').insertBefore('#dictionary')

.ajaxStart(function(){

$(this).show();

}).ajaxStop(function(){

$(this).hide();

});

这里无论哪个a标签触发ajax操作,包括静态载入文件和动态服务器访问,都会触发ajaxStart和ajaxStop。

关于错误处理,常用的三个函数:success、complete、error。

下面以error为例:

.error(function(jqXHR){

$('#dictionary').html('An Error occurred:'+ jqXHR.status).append(jqXHR.responseText);

});

可以以连缀的写法将error方法放置于get方法之后:“$.get().error()”这样。

刚才看了一下,这个可以将Tomcat的报错,加载到页面之上。这在有的时候还是很有用的。如图:

不过不知道为何这个将我原有样式也覆盖了一些,如果有哪位网友知道,麻烦指正一下问题所在。谢谢了。

5.Ajax和事件

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jquery each遍历json

    jquery each遍历json

    2016-01-31 16:17

  • struts2+ajax+json action向页面返回int型数据,页面报异常org.a

    struts2+ajax+json action向页面返回int型数据,页面报异常org.a

    2016-01-31 15:35

  • jQuery解析json格式数据简单实例

    jQuery解析json格式数据简单实例

    2016-01-26 08:00

  • jQuery+json实现的简易Ajax调用实例

    jQuery+json实现的简易Ajax调用实例

    2016-01-20 18:01

网友点评