设置使用jQuery选择的选项

时间:2016-05-13 18:56:31

标签: jquery html ajax

我有一种情况需要使用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似乎都会重新加载。

谢谢!

1 个答案:

答案 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函数仅在时才需要。