- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我收到此错误消息:
Uncaught InvalidStateError: Failed to read the 'selectionDirection' property from 'HTMLInputElement': The input element's type ('hidden') does not support selection.
当我检查控制台时,它说这段代码有错误:
function simpan() {
$.ajax({
url: 'app/tblhasilsurvey/simpan',
type: 'post',
async: false,
data: {
cmd: window.cmd,
id: window.id_hasilsurvey,
id_daftar: window.id_daftar,
id_jadwal: window.id_jadwal,
//tblhasilsurvey_nobasurvey : $("#nomor_ba_survey").val(),
nomor_izin : $("#nomor_izin").val(),
tgl_izin : $("#tgl_izin").val(),
pemilik_izin : $("#pemilik_izin").val(),
lokasi : $("#lokasi").val(),
kodekel : $("#kelurahan").val(),
kodekec : $("#kecamatan").val(),
tblhasilsurvey_tglbasurvey : $("#tgl_ba_survey").val(),
tbldaftarrencanasurvey_koordinat : $("#lattitude_").val()+';'+$("#longitude_").val(), // (lattitude;longitude)
tblhasilsurvey_fungsibangunan : $("#fungsi_bangunan").val(),
tblhasilsurvey_uraianpermasalahan : $("#uraian_permasalahan").val(),
tblizin_id : $("#tblizin_id").val()
},
success: function (data) {
if(data=='success') {
notifikasi('Sukses','Data Berhasil Disimpan', 'success');
//window.location.reload();
} else {
notifikasi('Gagal','Data Gagal Disimpan', 'fail');
}
}
});
if( $("#lattitude_").val() !='' ) window.pos_lat = $("#lattitude_").val(); // jika koordinat terisi maka update posisi lattitude
if( $("#longitude_").val() !='' ) window.pos_long = $("#longitude_").val(); // jika koordinat terisi maka update posisi longitude
$("#peta-lokasi").slideDown(1000);
initialize();
$("html, body").animate({ scrollTop: $(document).height() }, 2500);
return false;
function refresh () {
window.location.reload();
}
}
谁能给我解释一下这里发生了什么?
最佳答案
在您的 HTML 中的某处,您有一个 <input type='hidden' />
您正在尝试将其添加到数据对象中,但您可能正在添加 jQuery 对象,并且当 jQuery 对象在某处被字符串化时,可能会抛出此消息。鉴于您的大部分数据对象是通过显式调用 .val()
构建的我猜问题出在其中之一:
cmd: window.cmd,
id: window.id_hasilsurvey,
id_daftar: window.id_daftar,
id_jadwal: window.id_jadwal,
尝试将它们注释掉,看看您的错误是否消失了。如果是这样,那么可以通过添加 .val()
来解决问题。到有问题的行的末尾。
编辑和扩展
(2015 年 4 月 9 日)自从我写完这个答案以来,它已经有 3 个赞成票,全部及时散布,所以我猜其他人遇到了这个错误并找到了这个答案,所以这里有一个更一般的解释来帮助人们出。
如果您将表示隐藏输入的 jQuery 对象添加到 JS 对象,然后尝试将该 JS 对象序列化为 JSON,则会抛出此错误。
以最简单的形式重现错误的演示:
http://jsfiddle.net/ptugva6t/2/
使用这个 HTML:
<input type="hidden" id="test1" value="test1_val" />
然后 #test1
如果我们使用这个 JS 将触发错误:
$(document).ready(function() {
var data = {
test1: $("#test1")
}
JSON.stringify(data)
});
虽然这样没问题:
$(document).ready(function() {
var data = {
test1: $("#test1").val()
}
JSON.stringify(data)
});
而如果您使用文本输入,则不会遇到此错误,但由于您尝试序列化的对象的复杂性,您可能会遇到其他序列化错误!
更新
(2016 年 9 月 7 日)这似乎只是一个 Chrome 错误,并且已在最近的 Chrome 更新中修复。现在在 Chrome 52 中完全没有错误,您可以毫无问题地对 jquery 对象进行 JSON.stringify。
Firefox 也可以。不过,Safari 9.1.1 仍然会抛出错误 - JSON.stringify 上的 TypeError 可以通过添加 .val()
来修复因此出现了一个小型项目,用于查找 Chrome 错误报告及其修复,并将其报告给 Safari。
关于Javascript : Uncaught InvalidStateError: Failed to read the 'selectionDirection' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27659305/
你好我是 Angular JS 的初学者,当我开始创建模块和 Controller 时,我无法打印我的消息,下面是我的代码 var myModule = angular.module("myFirst
我对 JQuery 还是个新手,我正在尝试使用它遍历 JSON 数组并使用数组中的数据更新我的网页。 JSON 文件如下所示: [ { "firstname":"John",
我正在使用 AngularJS 1.3.5,我正在尝试从 json 文件中获取信息。这是我的代码:HTML 文件: {{da
我正在创建 Bootstrap 模板。我收到两个错误,我不知道自己做错了什么。当我搜索类似的问题时,似乎是脚本错乱了,但我认为它们的位置是正确的。 两个错误: 未捕获的 ReferenceError:
我试图用子菜单制作导航栏,但我一直收到 dropMenu 未定义,当我将鼠标悬停在两个巴黎链接上时,我收到 Uncaught TypeError: Cannot read property 'styl
我正在尝试在名为 UserComponent 的 Angular 组件上运行 karma 测试。在此组件中,我有一个 ngOnInit 执行此操作: ngOnInit() { const
当我启用 login.spec.ts 测试时,对于不同的测试,我总是随机收到此错误。未捕获错误:未捕获( promise ):错误:无法匹配任何路由。 URL 段:“注销” 我尝试使用以下方法伪造 a
自从我设置一个与 Angular 一起运行的网络应用程序以来已经有一段时间了。我正在通过一个旧项目回顾我的步骤(尝试在我正在做的页面上实现一个 Controller ,确保 Controller 文件
在 AWS Elastic Beanstalk 上部署应用程序后会发生此错误。构建和部署成功,所有模块都正常工作,除了一个显示上述 super 表达式错误的模块。一切似乎都在本地机器上正常工作,甚至可
我刚刚开始使用 Node.js 并尝试使用模块。我已经安装了 Node 和 npm,并确保一切顺利。我将在下面添加代码来向您展示我得到了什么。 我有两个 js 文件,它们在这里。 app.js: va
在 Android 4.4.2 KitKat (API 19) 模拟器上运行时,我的代码出现问题... 当我在 Android 4.3 (API 18) 模拟器上模拟我的项目时,它正常工作并使用 Ma
function more(){ var MoreDetails = document.getElementById('MoreDetails'); More
我正在练习 Javascript,并且有以下代码,该代码在 sets[i][j] = initial_sets [i ][j]; 行。这个想法似乎是正确的,但我不明白为什么会出现错误。 var set
$(document).ready(function(){ $('#name').val('Name1'); }); function clickMe(){ console.lo
我正在创建一个网络应用程序,但我遇到了一个无法解决的简单问题。我已将产生问题的代码放在这里:http://jsfiddle.net/rkumarnirmal/5w3FG/ 应该显示此答案的第二个ale
我正在执行一项长时间运行的任务,在中间的某个位置,可能会抛出此异常: Uncaught DOMException: Blocked a frame with origin "http://localh
我试图通过使用 HTML5 中的 onEnded 属性一首接一首地播放 3 首歌曲。这是我的第一次尝试,但出现错误。 错误: Uncaught ReferenceError: src is not d
检查 Fiddle 以查看发生的故障。 当我将数据(即使我将其留空)添加到文本框并尝试单击“添加”时,它没有执行任何操作。 打开 Chrome 和 Firefox 控制台都给我同样的错误,它说“cha
这个问题在这里已经有了答案: How to access the correct `this` inside a callback (13 个回答) 关闭5年前。 您好,这是我的(快捷方式)示例代码:
我正在处理一个项目,每次 Node 运行我的代码时,浏览器控制台都会给我这个: Uncaught TypeError: Failed to resolve module specifier "expr
我是一名优秀的程序员,十分优秀!