всегда в процессе изучения Javascript и модификации классной библиотеки автозаполнения , я сейчас перед этим:
Мне нужно проверить, является ли что-то, переданное в литерале объекта, переменной / полем (которое следует рассматривать как простое значение) или что-то, что можно вызвать.
(так как МОЕ автозаполнение зависит от многих полей ввода, мне нужно "оценить" правильные вещи, непосредственно перед Ajax.Request), чтобы это объявление (см. "Дополнительные" части ...)
myAutoComplete = new Autocomplete('query', {
serviceUrl:'autoComplete.rails',
minChars:3,
maxHeight:400,
width:300,
deferRequestBy:100,
// callback function:
onSelect: function(value, data){
alert('You selected: ' + value + ', ' + data);
}
// the lines below are the extra part that i add to the library
// an optional parameter, that will handle others arguments to pass
// if needed, these must be value-ed just before the Ajax Request...
, extraParametersForAjaxRequest : {
myExtraID : function() { return document.getElementById('myExtraID').value; }
}
см. "1 // здесь я потерян ..." ниже, и вместо 1 => я хотел бы проверить, может ли extraParametersForAjaxRequest [x] вызываться или нет, и вызвать его, если это так, сохраняя только его значение, если нет. Таким образом, я получаю правильное значение от других моих входных данных ... сохраняя при этом действительно общий подход и чистую модификацию этой библиотеки ...
{
var ajaxOptions = {
parameters: { query: this.currentValue , },
onComplete: this.processResponse.bind(this),
method: 'get'
};
if (this.options.hasOwnProperty('extraParametersForAjaxRequest'))
{
for (var x in this.options.extraParametersForAjaxRequest)
{
ajaxOptions.parameters[x] = 1 // here i'm lost...
}
}
new Ajax.Request(this.serviceUrl, ajaxOptions );