Проверьте, изменился ли выбор в событии OnClick - PullRequest
0 голосов
/ 26 июля 2010

Примечание. Ответ, помеченный как ответ, отвечает на вопросы в заголовке.Тем не менее, моя основная проблема, с использованием раскрывающегося списка типов, решается путем перехода на IE8.

У меня есть выпадающий список, который, когда я щелкаю новый выбор, я хочу вызвать обратную передачу ("this.form.submit() ") Но только если щелчок по раскрывающемуся списку только что изменил выбор.

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

Я также полагаю, что мог бы использовать OnChange и проверить, было ли изменение вызвано мышью.

Может быть, если мы сможем придумать оба решения, и я посмотрю, какие из них лучше?

Большое спасибо за вашу помощь !!!!!

РЕДАКТИРОВАТЬ: Подробнееинформация:

AutoPostback = true;не будет работать.(не хочу, чтобы он отправлял обратно, когда выбор изменяется с помощью клавиатуры)

onBlur = doPostBack;Я пробовал это, но результат не является оптимальным.Пользователь должен отключить ddl после выбора с помощью мыши.

Другой способ заявить, что я хочу сделать, я думаю, это сделать обратную передачу, когда события OnChange и OnClick срабатывают одновременновремя.

Ответы [ 2 ]

1 голос
/ 29 июля 2010

В событии OnClick у меня есть javascript, который устанавливает ddl.value = true;

В событии OnChange я проверяю, если ddl.Value = true, если это так, я выполняю обратную передачу и устанавливаю значение false.

В OnKeyDown я устанавливаю ddl.Value = false, чтобы, когда ящелкните по ddl, который он отправляет только назад, если я изменю выделение мышью, если я нажму клавишу, чтобы использовать функцию опережающего ввода, она не отправит обратно.

Не самое элегантное решение, но оно работает иВы должны дать мне кредит для творчества.

Примечание. Это решение работает в сочетании со сценарием, который запускает OnKeyDown, который запускает тип-вперед-ddl (т. е. перемещает вас к ближайшему выделению, когда вы нажимаетеклавиша) и обратной передачи при нажатии клавиши ввода.

0 голосов
/ 26 июля 2010

Вы пробовали AutoPostBack = "true"?

...