powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / обработчик onClick
10 сообщений из 10, страница 1 из 1
обработчик onClick
    #35238875
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как заставить кнопку выполнить метод?
Я делаю так:
Код: plaintext
1.
w "<input type=""button"", value=""OK"" onClick=",..MyMethod(),">"

При этом метод объявлен след. обр.:

Код: plaintext
1.
2.
3.
<script language="Cache" method="MyMethod" arguments="" returntype="%String">
w "Метод выполнен"
</script>

Пишет ошибку..
А если просто прописать код:
Код: plaintext
1.
d ..MyMethod()
Тогда работает... но нужно с кнопкой!
...
Рейтинг: 0 / 0
обработчик onClick
    #35238957
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotЯ делаю так:
Код: plaintext
1.
w "<input type=""button"", value=""OK"" onClick=",..MyMethod(),">"

А нужно вот так
Код: plaintext
1.
&html<<input type="button", value="OK" onClick="#server(..MyMethod())#">>
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
обработчик onClick
    #35238975
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
#call
#server

Поищите в документации.
Еще рекомендую вешать на onclick JS-функцию, в которой уже делать соответсвующий вызов
(потому что иногда тяжело не запутаться при передаче строк в качестве параметров вызова)

и делайте лучше так(то есть в стиле html, а не каше):
Код: plaintext
<input type=button value='OK' onClick=#call(..MyMethod())#>

На крайний случай так:
Код: plaintext
1.
2.
3.
4.
5.
6.
<script language=javascript>
 function MyMetod111()
 #call(..MyMethod())#;
</script>
<server language=cache>
w "<input type=""button"", value=""OK"" onClick=MyMetod111()>"
</server>

А если делать, формируя из контекста каше, то нужно попрыгать порядком побольше.
Но если хочется, смотрите класс %CSP.Page
методы
HyperEventBody()
HyperEventHead()
HyperEventCall()
и т.д, но в любом случае чтобы делать так, вам нужно будет сделать вызов в стиле html через #call и #server и посмотреть скомпилированные исходники.

Еще поищите про различия #call и #server (call асинхронный и не возвращает значения, #server возвращает значение, но вроде IS рекомендует #call)
...
Рейтинг: 0 / 0
обработчик onClick
    #35239531
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.
и делайте лучше так(то есть в стиле html, а не каше):
Код: plaintext
<input type=button value='OK' onClick=#call(..MyMethod())#>


Блин, что то не получается...вроде всё правильно делаю, вот текст:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<html>
<head>
<title>	Cache Server Page </title>
</head>
<body>

<script language="Cache" method="MyMethod" arguments="" returntype="%String">
 w !,"Метод выполнен"
</script>

<input type="button" value="OK" onClick=#call(..MyMethod())#>

</body>
</html>


Кнопка не работает... мож в браузеое дело??
И ошибку выдаёт IE при этом... FF 2,0 - вообще не реагирует..
Ошибка типа не хватает точки апятой где-то, где токо я её не липил - всё бестолку
...
Рейтинг: 0 / 0
обработчик onClick
    #35239573
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLot , афигеный у тебя метод!
Вот тебе работающий пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<script language="javascript">
...
// Удалить картотеку
function DelBD(Id) {
   var ok
   ok=confirm("Удалить картотеку?")
   if (ok) {
      ok=#server(..cDelBD(Id))#
      Go("bdall.csp")
   }
}
</script>
...
<csp:method name="cDelBD" arguments="Id:%String" returntype="%String">  
   // Удалить картотеку
   n o
   s o=##class(rg.BD).%OpenId(Id)
   d ##class(rg.BD).%Delete(o.%Oid())
   d o.%Close()
   q  1 
</csp:method>
...
<input type='button' value='Удалить' onclick='DelBD(#(%request.Data("bd",1))#)'>
...
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
обработчик onClick
    #35239583
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В JS нет такого события onClick есть - onclick ... И не ленись ставить кавычки или апострофы для всех свойств и событий
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
обработчик onClick
    #35239594
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa CacheLot , афигеный у тебя метод!


Та да... метод в поряде... но не работает хоть убей блин, можешь проверить его у себя?
Мож дело в версии Каши?
...
Рейтинг: 0 / 0
обработчик onClick
    #35239605
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLotно не работает хоть убей блин
Я бы тоже не смог разговаривать под водой.
"Обычно" для тестирование метода в CSP применяли такой подход
Код: plaintext
1.
2.
3.
<csp:method name="cMtd" arguments="" returntype="%String">  
   s ^tmp= 1 
   q  1 
</csp:method>
...
Рейтинг: 0 / 0
обработчик onClick
    #35239688
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКнопка не работает... мож в браузеое дело??
И ошибку выдаёт IE при этом... FF 2,0 - вообще не реагирует..
Ошибка типа не хватает точки апятой где-то, где токо я её не липил - всё бестолку

На самом деле все у вас работает, просто в методе написана фигня

автор<script language="Cache" method="MyMethod" arguments="" returntype="%String">
w !,"Метод выполнен"
</script>
Эт куда же вы собрались писать? Вы в контексте вывода в html находитесь, внутри метода JS.
JS давится на коде "Метод выполнен" - это именно код и он пытается его выполнить.

попробуете
автор<script language="Cache" method="MyMethod" arguments="" returntype="%String">
w !,"alert('Метод выполнен!');"
</script>
...
Рейтинг: 0 / 0
обработчик onClick
    #35239710
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так
Код: plaintext
1.
2.
...
&js<alert('Метод выполнен!');>
...
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / обработчик onClick
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]