Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > OnChange в textarea


Автор: mr.Anderson 5.8.2006, 21:25
Написал в HTML-файле вот это:
Код

<script language='vbscript'>

Sub txtMess_OnChange()

 CALL MsgBox( "Вы изменяете TEXTAREA!" )

End Sub

</script>

<html>
<form name='myform'>

<textarea name='txtMess'></textarea>

</form>
</html>

Однако ж, сообщение вылезает только в том случае, если я введу текст в textarea, а потом щелкну мышкой вне textarea. Вот тогда вылезет. Что такое?

Автор: cardinal 5.8.2006, 22:21
Цитата(msdn)

This event is fired when the contents are committed and not while the value is changing. For example, on a text box, this event is not fired while the user is typing, but rather when the user commits the change by leaving the text box that has focus.

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/events/onchange.asp

Автор: mr.Anderson 5.8.2006, 22:31
Ну, с моим плохим английским, я так понял, что так и должно быть? А какое же событие тогда использовать?

Добавлено @ 22:35 
Все-все, нашел OnKeyDown...

Автор: cardinal 6.8.2006, 01:35
Цитата(sim7 @  5.8.2006,  21:31 Найти цитируемый пост)
Ну, с моим плохим английским, я так понял, что так и должно быть?

Именно.

А вообще прикольно, я и не знал, что такое (html + vb) творить можно. Может подготовишь немного материала для FAQ'a?

Автор: mr.Anderson 6.8.2006, 20:08
Так. Обе статьи сделал, отослал вам на мыло. Продублирую их тут.

-------------------------------------------

Как увязать объект и его событие с VBScript

Вообще, существует несколько вариантов. Но я опишу наиболее предпочтительный.

Создаем на форме объект, присваиваем ему имя, как обычно это делается в HTML. Затем пишем НАД html-кодом следующее:
Код

<script language=’vbscript’>

Sub cmdButton_OnClick()

    Dim mess

    mess = “Вы кликнули по объекту!”

    CALL MsgBox( mess, vbInformation, “Информация” )
    document.form.txtText.value = mess

End Sub

</script>

А ПОД всем этим – HTML-код:
Код

<html>
<form name=’form’>

 <input type=’button’ name=’cmdButton’ value=’Вызов сообщения’><br>
 <input type=’text’ name=’txtText’ value=’0’>

</form>
</html>

Итак, давайте разберем порядок «увязки» VBScript с формой.

1.    Создаем HTML-код. Обязательно обрамляем весь код в теги <form></form>, причем присваиваем форме имя. Это потребуется при задании/считывании значений объектов на форме.
2.    Создаем объекты (ссылки, кнопки, текстовые поля и т.д.), обязательно присваиваем каждому имя.
3.    Над HTML-кодом пишем обрамляющие теги <script language=’vbscript’></script>.
4.    Между этими тегами пишем собственно событийные процедуры. Процедурам лучше присваивать типы Public, что эквивалентно простому объявлению Sub (вместо Public Sub). Затем пишем имя объекта на форме, а через символ подчеркивания – его событие, на которое он может реагировать (в нашем случае событие клика по объекту – OnClick() ). После имени события, разумеется, ставим пару круглых скобок.
5.    Прописываем в объявленной событийной процедуре действия, которые должны выполняться по срабатыванию события.

Вот, собственно, и все.

-------------------------------------------

Разница в синтаксисе VBScript и Visual Basic

Несмотря на то, что синтаксис VBScript и VB во многом схож, нужно знать несколько исключений. Я приведу для сравнения VB-код и затем VBScript-код.

Сначала приведу VB-код.
Код

Private Sub MySubroutine( mess, text as String, intA as Integer )
    
    Dim intB As Integer
    Let intB = 20

    Let intA = intB
    Let text = mess
    MsgBox Prompt:=text

End Sub

А теперь аналогичный VBScript-код:
Код

Sub MySubroutine( mess, text, intA )

    Dim intB
    intB = 20

    intA = intB
    text = mess
    CALL MsgBox( mess )

End Sub

А теперь поясню различия между VB и VBScript. В VBScript:

1.    Тип процедуры всегда желателен как Public (как в моем скрипте).
2.    В заголовке функции нельзя указывать типы переменных.
3.    При вызове встроенных функций и процедур нужно вызывать их через CALL.
4.    Если вы используете для задания переменных ключевое слово Let, как и я, то в VBScript придется от него отказаться.

Это основные различия. Чаще всего новички делают именно такие ошибки.

-------------------------------------------

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)