2012-04-04 2 views
2

Я использую автозаполнение jquery в некоторых текстовых окнах в своем веб-приложении (.Net 3.5). Моя проблема заключается в том, что текст префикса всегда пуст. Правильное значение не будет присвоено ему.Как передать значение текстового поля в jQuery autocomplete

function TextBoxAutoComplete(scope, controlId, contextKeyId) { 

var txtbox = null; 
var flagValue; 
if (scope) { 
    txtbox = $('input[id$="' + controlId + '"]', scope); 
} else { 
    txtbox = $('input[id$="' + controlId + '"]', document); 
} 

var contextKeyValue = $('input[id$="' + contextKeyId + '"]', document).val(); 

$(txtbox).autocomplete("../Handlers/MiscHandler.ashx", { 
    minChars: 0, 
    extraParams: { prefixText: $(this).val(), count: '10', contextKey: contextKeyValue, flag: 'codePart' }, 
    selectFirst: false, 
    width: 49 
}).result(function(event, data, formatted) { // result is a separate function 
    var dummy = new Object(); 
    dummy.value = data[1]; 
    dummy.text = data[0]; 
    var test = new Test(dummy); 
}); 
} 

Я вызываю вышеуказанный метод при готовности документа. Вот проблема, я не получить значение текстового поля (в настоящее время набран текст), когда я передать его в переменной «prifixText» prefixText: $ (это) .val()

Может кто-нибудь, пожалуйста, помогите мне решение этой проблемы? Thanks

+0

Из интереса вы получаете что-либо, если вы запрашиваете $ (txtbox) .val()? Я мог ошибаться, но я думаю, что «это» в этом контексте является собственно автозаполнением, которое не будет иметь выбранного значения. – mattytommo

+0

Стоит отметить, что вы НЕ используете версию автозаполнения jQuery UI здесь. Вы должны добавить ссылку на плагин, который вы используете, так как есть несколько похожих версий. –

+0

@mattytommo - Спасибо за ваш быстрый ответ. Я пробовал то же самое, но это не сработало. – Sugandika

ответ

0

Попытайтесь использовать событие search, в вашем примере вы находитесь в плохом пространстве.

http://jqueryui.com/demos/autocomplete/#event-search

Чтобы установить использование опции http://jqueryui.com/demos/autocomplete/#method-option

+0

Появляется, как будто версия пользовательского интерфейса jQuery здесь не используется. –

0

Наконец мне удалось найти ответ с помощью моего друга.

Из обработчика «../Handlers/MiscHandler.ashx» Я попытался получить доступ к текстовому тексту, получив значение «prefixText» следующим образом.

string prefixText = string.Empty; 
if (context.Request["prefixText"] != null) 
{ 
prefixText = context.Request["prefixText"].ToString(); 
} 

Но это не сработало, не позволило мне получить значение текстового поля. Вместо этого я обратился к параметру «q» в строке запроса, который приходит по умолчанию.

if (context.Request["q"] != null) 
{ 
prefixText = context.Request["q"].ToString(); 
} 

Это работало идеально, и не было никакой проблемы с кодом Jquery, вопрос был как я обрабатывается запрос HTTP. Благодарю.

Смежные вопросы