Javascript 某些用户的值未定义,其他用户的值为空字符串

Javascript 某些用户的值未定义,其他用户的值为空字符串,javascript,jquery,Javascript,Jquery,我有一个表单,在提交时将数据打包成ajax格式,并通过ajax发送到coldfusion脚本。一个虫子从两台电脑上爬了出来,但我的和另一台电脑都没有。我找到了一个不存在的结构键。当我对打包的json数据进行控制台日志记录时,我们都会在传递struct键之前看到它。对我来说,它的值是一个空字符串。对于其他人,它表示未定义。正因为如此,coldfusion似乎在收到密钥后将其从结构中删除,这就是我们遇到的最初问题的原因。一旦确定,这是一个简单的修复 结构键从jquery对象分配了一个值,该对象是一个

我有一个表单,在提交时将数据打包成ajax格式,并通过ajax发送到coldfusion脚本。一个虫子从两台电脑上爬了出来,但我的和另一台电脑都没有。我找到了一个不存在的结构键。当我对打包的json数据进行控制台日志记录时,我们都会在传递struct键之前看到它。对我来说,它的值是一个空字符串。对于其他人,它表示未定义。正因为如此,coldfusion似乎在收到密钥后将其从结构中删除,这就是我们遇到的最初问题的原因。一旦确定,这是一个简单的修复

结构键从jquery对象分配了一个值,该对象是一个SELECT元素(无多个)。我的结构将如下所示:

var fields = {
    myVar: $('#import_me').val()
};
我想弄明白的是,为什么在未选择任何内容时,它会为我分配一个空字符串,但会为我的同事未定义?我们使用相同的浏览器和版本

这会给我更一致的结果吗

$('#import_me option:selected').val()

这对你有用吗

退路:

var fields = {
    myVar: $('#import_me').val() || ''
};
如果没有val(),则应将空字符串设置为回退

但这可能更好:

检查变量,如果未定义,则将其设置为空字符串

var fields = {
    myVar: $('#import_me').val()
};

if (fields[myVar] === undefined) {
    fields[myVar] = "";
}

如果未选择任何选项,则选择元素的值默认为第一个选项。可能元素(或其中的选项)在检索时不存在?使用本机JS进行检查很容易,如果元素不存在,它将抛出错误。加载JS的脚本标记是否位于页面HTML中的body标记上方?
.val()
返回
null
,如果没有选项,如果找不到select元素,结果是
未定义的
。只有在所选选项的值为空字符串的情况下,空字符串才能成为结果。您确定以后没有覆盖从select中读取的值吗?在select中,没有显式选中任何内容,但第一个选项的值设置为空字符串。这是默认的,是我期望返回的。我只是不明白为什么我得到了空字符串,而其他人得到了未定义的字符串@Rahul,上面的代码是在表单中单击save按钮时调用的函数。(单击事件操作在$(document).ready函数中分配)