【应用场景】在使用jquery easyui的form插件时,chrome返回json数据总是被添加了样式,其他浏览器都能正常返回json数据。尝试使用jqeury的ajax方法提交表单也没有出现问题。为了绕过错误以及为了学习easyui的使用,所以笔者采用如下解决方案:
(1)判断浏览器是否为chrome浏览器;
(2)若是chrome浏览器,则使用jquery的ajax方式提交表单;否则,采用easyui的form插件提交表单;
1.js代码如下:
function getBrowserType() {
var explorer = navigator.userAgent;var result;
//ie
if (explorer.indexOf("MSIE") >= 0) {
result = "ie";
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
result = "Firefox";
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0) {
result = "Chrome";
}
//Opera
else if (explorer.indexOf("Opera") >= 0) {
result = "Opera";
}
//Safari
else if (explorer.indexOf("Safari") >= 0) {
result = "Safari";
}
//Netscape
else if (explorer.indexOf("Netscape") >= 0) {
result = 'Netscape';
}
return result;
}
2.aspx页面代码
function saveMenu() {
var row = $('#dg').datagrid('getSelected');
if (getBrowserType() == "Chrome") {
$.ajax({
url: url1,
type: "post",
dataType: "json",
async: false,
data: $("#fm").serialize(), //将表单序列化
success: function (data) {
//ajax方式直接将后台的json字符串转换为json对象,即这里的data已经是json对象,不需要转换
$.messager.alert("操作提示", data.Message, 'info'); //显示后台信息
if (data.Success) {
$("#dg").datagrid('reload');
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
} else {
$('#fm').form('submit', {
url: url1, //注意添加和修改的url不同
dataType: 'json',
onSubmit: function () {
//验证表单是否合法
return $(this).form('validate');
},
success: function (data) {
data = eval('(' + data + ')'); //将一个json字符串解析成js对象
$.messager.alert("操作提示", data.Message, 'info'); //提示后台错误信息
if (data.Success) {
$('#dlg').dialog('close'); //关闭弹出框
$('#dg').datagrid('reload'); //重新加载数据
}
}
});
}
}
代码参考了js判断当前浏览器