我有一种情况需要使用jQuery初始化select中的选定选项(Country下拉列表中的美国)。遗憾的是,由于平台的限制,我无法在HTML中设置它,并且没有任何类或ID要定位。此表单也会根据ajax进行更改(根据该人是客人,在结账时注册还是已注册,有3个版本的相同表单)。我创建的当前脚本有效,但不允许您更改到其他国家/地区:
(defn my-map [f coll]
(loop [f f coll coll acc []]
(if (empty? coll)
acc
(recur f (rest coll) (conj acc (f (first coll)))))))
所以基本上当它将其设置为选中时,它不允许用户更改美国选项。每次为某种选择设置选项时,Ajax似乎都会重新加载。
谢谢!
答案 0 :(得分:0)
因此,根据评论,似乎每次尝试更改下拉列表时,都会调用更多的AJAX。反过来,这会调用$ .ajaxSuccess函数。这意味着每次调用AJAX都会重置它!
你可以这样做:
# settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
'datefmt' : "%d/%b/%Y %H:%M:%S"
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'mysite.log',
'formatter': 'verbose'
},
},
'loggers': {
'django': {
'handlers':['file'],
'propagate': True,
'level':'DEBUG',
},
'MYAPP': {
'handlers': ['file'],
'level': 'DEBUG',
},
}
}
或者,您可以利用传递给var set = false;
$(document).ajaxSuccess( function() {
if (set) return;
$('option:contains("United States"):not(:contains("Minor"))').prop("selected", true);
set = true;
});
的参数来确定是否应该运行代码。例如:
ajaxSuccess
这种方法只有在您正在收听某个特定网址时才有效,但您明白了。只需确保ajaxSuccess函数仅在时才需要。