我正在使用以下默认值脚本,该脚本在我测试过的除IE7之外的所有浏览器中都有效,其中默认值未显示在“名称”字段中(它应显示“名称”)。
我在IETester中运行了该页面,它在};
下的'name[]': 'Name',
行上显示了错误:“预期的标识符,字符串或数字”。我不知道如何解决这个错误。
编辑:在'Name'
之后移除逗号后,此错误现已消失,但我仍然没有在IE7中看到默认值。你可以在this page上看到我的意思。
有人可以帮忙吗?
谢谢,
尼克
<script>
$(function() {
var defaults = {
'name[]': 'Name',
};
// separating set and remove
// note that you could add "defaults" as an arg if you had different
// defaults for different fieldsets
var setDefaults = function(inputElements) {
$(inputElements).each(function() {
var d = defaults[this.name];
if (d) {
// set with jQuery
// we don't need the data - just check on the class
$(this).val(d)
.addClass('default_value');
}
});
};
var removeDefaults = function(inputElements) {
$(inputElements).each(function() {
if ($(this).hasClass('default_value')) {
$(this).val('')
.removeClass('default_value');
}
});
};
setDefaults(jQuery('form[name=booking] input'));
// Toggles
$('form[name=booking]').delegate('input', {
'focus': function() {
removeDefaults($(this));
},
'blur': function() {
// switch to using .val() for consistency
if (!$(this).val()) setDefaults(this);
}
});
});
</script>
答案 0 :(得分:1)
它在错误上给出了错误:“预期的标识符,字符串或数字”;在'name []'下:'Name',。我不知道如何解决这个错误。
IE在这里的尾随逗号上窒息:
var defaults = {
'name[]': 'Name',
};
IIRC,根据ECMAScript标准是合理的。无论如何,只需删除尾随的逗号即可。
答案 1 :(得分:0)
(我正在回答你的另一个问题大声笑)
首先你正确地说逗号打破了它,这是不正确的JSON语法。
其次,不支持IE 8及以下版本(我很想说根本不支持IE,因为它很糟糕,但显然大多数互联网仍在使用它)
第三,您需要对此进行调试才能弄明白,看一下Parsing JSON(我想是$ .parseJSON())。
我可以向你展示错误的错误以及如何做到这一点,但通过在浏览器中打开控制台并使用console.log(VARIABLE)来花些时间来练习调试javascript是值得的。在你的JS中。或者在不同时间使用警报(VARIABLE)。
例如
var setDefaults = function(inputElements) {
$(inputElements).each(function() {
var d = defaults[this.name];
alert(d);
if (d) {
// set with jQuery
// we don't need the data - just check on the class
$(this).val(d)
.addClass('default_value');
}
});
};