Имя: Пароль:
IT
Веб-мастеринг
Поясните суть функции HTML
,
0 DES
 
06.10.14
13:44
//<![CDATA[
function WebForm_OnSubmit() {
null;if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>

Когда труе, когда фальше ?
1 Serginio1
 
06.10.14
14:33
Когда тип переменной ValidatorOnSubmit функция
и функция возвращает false тогда возвращается ложь
во всех других случаях истина
2 Necessitudo
 
06.10.14
14:34
В HTML есть функции? Я думал это просто язык разметок.
3 DES
 
06.10.14
15:05
(1) не издевайся. читать код я умею.
(2) как по твоему можно перевести  слово function ?
4 DES
 
06.10.14
15:06
(1) что проверяет функция, а не какую переменную
5 Serginio1
 
06.10.14
15:25
(4) А это смотри где эта переменная определена и где есть ей присвоение.
6 DES
 
06.10.14
15:30
Это стандартная функция .NET - присутствует во многих страницах
7 Serginio1
 
06.10.14
15:43
Ну вопервых она точно не стандартная для .Net так как на страницах только JavaSgript или VBScpipt
Нужно смотреть подгружаемые скрипты
8 Serginio1
 
06.10.14
15:46
9 trdm
 
06.10.14
16:51
(3)  >> как по твоему можно перевести  слово function ?

это js, а не ХТМЛ.
Но видно рация на бронетранспортере все таки.
10 DES
 
06.10.14
17:59
(9) ой да ладно умняк лепить...
11 Torquader
 
06.10.14
18:20
В данном случае, сначала проверяется, что в коде есть определённая функция для обработки события, а потом она уже вызывается. И, предположительно, функция возвращает true или false в зависимости от того, нужно ли передавать форму на сервер или нет.
Другими словами, код написан в обобщённом виде для того, чтобы его можно было использовать в любой форме, а задаст ли программист функцию или нет - это его (программиста) дело.
P.S. если в коде не указан язык, то, по умолчанию, предполагается javascript, так как транслировать VbScript умеет только "осёл" (и непонятно зачем его этому научили).
12 DES
 
07.10.14
09:28
Что за осел? Это преопределенная функция? Срабатывает когда? Похоже  что на событии submit формы. Дело в том что у меня не нажимается кнопка через IE API. Хотя в отладчике Кнопка.type=submit.  А Кнопка.submit() дает ошибку что нет такого свойства. Вот я и думаю, что все дело в этой функции, она не труе возращает. И иначе как понимать отсутствие свойства при его наличии?
13 Asmody
 
07.10.14
09:34
(12) не Кнопка.submit(), а Форма.submit(). Кнопка может только Click()
14 Asmody
 
07.10.14
09:38
а смысл кода в (0) очень прост: судя по названию, это валидатор формы. Конечно он не предопределен, что и проверяется в коде: если определен валидатор и проверка формы не прошла, то сабмитить форму не надо.
15 DES
 
07.10.14
09:45
А как же возращаемое свойство type в отладчике на Кнапке? Дело в том что этот же код в 1с работал на других формах на аджаксе и  именно кнопка.submit() и срабатывала.
16 DES
 
07.10.14
09:48
Т.е. мне рыть в сторону функции validatorOnSubmit() ?
17 Asmody
 
07.10.14
09:51
(15) type="submit" показывает, что кнопка отправляет событие submit форме, на что форма должна выполнить проверку в обработчике onSubmit.
В свою очередь, form.submit() никаких событий не отправляет и, следовательно, проверок не вызывает.
18 kokamoonga
 
07.10.14
09:52
(15) >>> А как же возращаемое свойство type в отладчике на Кнапке?

Ты не чувствуешь разницы между Кнопка.type и Кнопка.submit() ? Ясен пень нет такого свойства. Кнопка это html-элемент input с аттрибутом type="submit"

А метод .submit() это метод формы, который отправляет данные на сервер.
19 wormselfish
 
07.10.14
09:53
(11) Осел не умеет транслировать VbScript. Разве что устаревший.
20 DES
 
07.10.14
09:56
(18) ЕЩЕ раз - ранее код кнопка.submit() срабатывал нормально. На этой странице не хочет. Что я не понимаю или путаю?
21 kokamoonga
 
07.10.14
10:04
(20) >>> ЕЩЕ раз - ранее код кнопка.submit() срабатывал нормально.

Либо где-то в коде для кнопки был явно определен метод .submit(), что крайне сомнительно. Либо ты что-то путаешь, что куда более вероятно.
22 DES
 
07.10.14
10:16
(21) на форме есть ДВЕ кнопки. Я програмно по id нахожу  нужную кноку. Делаю ей  submit() или click().  Оба метода дают ошибку. Я не могу делать форма.submit()   ибо на какую кнопку я это буду делать?
23 kokamoonga
 
07.10.14
10:20
(22) >>> Я не могу делать форма.submit()   ибо на какую кнопку я это буду делать?

Причем здесь кнопка? Форма содержит данные. При вызове form.submit() данные отправляются на сервер.
24 Asmody
 
07.10.14
10:22
(22) Тогда, скорее всего, у кнопок есть обработчики onClick. Посмотри что там находится и вызывай напрямую
25 DES
 
07.10.14
10:35
<DIV id=ctl00_body_UpdatePanel1>
<INPUT id=ctl00_body_AccesServiceBtn type=submit value="Доступ" name=ctl00$body$AccesServiceBtn>
<INPUT id=ctl00_body_CancelServiceBtn type=submit value="Cancel" name=ctl00$body$CancelServiceBtn>
</DIV>
26 DES
 
07.10.14
10:40
еще такое нашел
<FORM id=aspnetForm method=post name=aspnetForm action=efac.aspx sizcache05779220739970005="10 29 0" sizset="false">
27 DES
 
07.10.14
10:41
тут вызывается та форма что нужна, по кнопке.
а вот почему кнопка не пашет не пойму
28 DES
 
07.10.14
10:43
а на каком этапе вот такое расшифруется ?
</SCRIPT>
<SCRIPT type=text/javascript src="/WebResource.axd?d=mI1rgWEHZ5bEvZdTe5HccKr3Hkd68EK0c4IsRvnrIDtef5mPI1PGEYG81&amp;t=63519987188881"></SCRIPT>
29 Asmody
 
07.10.14
10:44
ты можешь, конечно, полазить по js-коду и поискать биндинги обработчиков событий, но я бы сначала проверил document.forms['aspnetForm'].submit()
30 Serginio1
 
07.10.14
10:44
(27) Ты бы лучше Asmody
показал страницу, он бы тебе быстрее помог
31 Asmody
 
07.10.14
10:45
(28) Это не расшифруется, это ссылка, по ней файл с js подгрузится.
32 Serginio1
 
07.10.14
10:59
(28) У тебя не совсем верный подход к изучению. Берешь учебник по Html, css, JavaScript и многое сразу становиться понятным
33 DES
 
07.10.14
11:00
(29) нет такого на странице
есть только
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
34 Asmody
 
07.10.14
11:00
(32) Какой учебник, что ты? Ему же всего-то "кнопочку нажать".
35 DES
 
07.10.14
11:04
еще есть такое
function EndHandler() {
            $("tr.pager td table tr td").each(function (k) {
                $("input", this).addClass("b" + k).attr("id", "pagination");
            });

это что, переопределяет input-ы ?
36 DES
 
07.10.14
11:07
(34) да я понимаю ваши насмешки, но и вы поймите, мне скоро умирать, а еще не прочитал все книжки по всем языкам, всем системам и всем архитектурам.
37 Serginio1
 
07.10.14
13:13
(36) Мне 50 и умирать не собираюсь и все "учусь, учусь и учусь" как завешал Великий Ленин.
Ты больше времени сэкономишь поняв основы и понимая то, что написано
38 DES
 
07.10.14
13:20
Ну я же говорил тебе, мне больше чем тебе, но мне действительно кнопочку нажать и забыть, как я забыл PL/1, Фортран-77 и Бейсик. А до этого забыл коммутацию на программной доске Табулятора Т5-МВ.
39 DES
 
07.10.14
13:24
да, и до сих пор кнопки нажимались беспроблемно.
40 Serginio1
 
07.10.14
13:40
Ну прочитать про основы то много не займет. На PL не программировал, но это не значит что все что ты изучал не повлияло на твое развитие.
Посмотри http://msdn.microsoft.com/ru-ru/library/bg182326(v=vs.85).aspx
41 DES
 
07.10.14
13:42
(40) да, я это юзаю давно
42 Serginio1
 
07.10.14
13:54
(41) Ты бы ссылку на страницу дал. А так тебе сложно помочь.
Смотри что у тебя делает onsubmit если она определена
43 DES
 
07.10.14
13:57
не могу дать страницу, она только  залогиненным доступна.
44 DES
 
07.10.14
14:13
подозреваю что
<FORM id=aspnetForm method=post name=aspnetForm action=efactura.aspx sizset="false" sizcache02439316468639956="10 29 0" metrikaId_0.926859701486235="3">

где action=efactura.aspx
это ссылка на саму себя.
но в какой то момент action заменяется на другую ссылку.
но вот не понятно как они отключили метод submit() у кнопки ?
45 Serginio1
 
07.10.14
14:15
Так покажи описание этой кнопки из под отладчика
46 Serginio1
 
07.10.14
14:17
(44) На скриптах можно сделать все что угодно
http://www.sql.ru/forum/1014475/submit-i-onclick
47 DES
 
07.10.14
14:44
(45) в (25)
48 DES
 
07.10.14
14:57
чем отличается для IE нажатие кнопки мышкой и через API ?
49 Serginio1
 
07.10.14
15:51
(47) Ну и чем
<INPUT id=ctl00_body_AccesServiceBtn type=submit value="Доступ" name=ctl00$body$AccesServiceBtn>

отличается от?
<INPUT id=ctl00_body_CancelServiceBtn type=submit value="Cancel" name=ctl00$body$CancelServiceBtn>

Наверняка для ctl00_body_AccesServiceBtn должен быть какойнибудь onclick устанавливаемый из JavaScript

(48) Посмотри на ограничение загрузки скриптов

Кстати а из под IE какое описание?
50 Torquader
 
07.10.14
16:25
(48) Хотя бы тем, что начала приходят события мыши, а только потом событие "click".
51 DES
 
07.10.14
23:48
(49) в смысле "Кстати а из под IE какое описание?"
52 Serginio1
 
07.10.14
23:59
ctl00_body_AccesServiceBtn
Не могут 2 кнопки иметь одно и тоже действие
53 DES
 
08.10.14
00:05
а где тут одно действие?
54 Serginio1
 
08.10.14
00:08
55 Sasha_Rapira
 
08.10.14
00:54
Причем тут JS, если это ASPNet ?
56 Asmody
 
08.10.14
00:55
(52) легко! если onclick перехватывается.
57 Asmody
 
08.10.14
00:55
(55) При чем тут ASP.Net, если мы на стороне клиента?
58 Asmody
 
08.10.14
00:58
(38) Не надо меня лечить про Фортран, я тоже могу FoxPro и Turbo Prolog вспомнить. Я ещё в (29) написал, что нужно проверить и посмотреть на результат.
59 Serginio1
 
08.10.14
10:31
(56) Согласен, не часто работаю со страницами, часто в DOM  просто прописывают OnClick и это значение можно посмотреть в отладчике либо сделать поиск п ID Input а.
(58) Это он мне по поводу "Учиться, учиться и учиться"
60 DES
 
08.10.14
11:45
(58)
a = objDoc.forms("aspnetForm").submit();
a = OLE.JScriptTypeInfo

кнопка = objDoc.getElementById("ctl00_body_EFactura_Agreement1_AccesServiceBtn");
Попытка
кнопка.Submit();        
Исключение
Сообщить("Исключение. тип Кнопка " + кнопка.type);
КонецПопытки;
a = objDoc.forms("aspnetForm").submit();
(в отладчике a = OLE.JScriptTypeInfo)
objDoc.forms("aspnetForm").submit();  действий не возымело,
61 DES
 
08.10.14
12:02
<FORM id=aspnetForm method=post name=aspnetForm action=efactura.aspx sizcache09857233354015636="10 29 0" _events="[object Object]" :submit0.7416735229368033="&#10;function submit() {&#10;    [native code]&#10;}&#10;" submit="function(){ea({target:this});return this[Xa]()}" sizset="false" metrikaId_0.9152425741947581="3">

<DIV id=ctl00_body_EFactura_Agreement1_UpdatePanel1 metrikaId_0.9152425741947581="69">
<INPUT id=ctl00_body_EFactura_Agreement1_AccesServiceBtn type=submit value="Accesare serviciu" name=ctl00$body$EFactura_Agreement1$AccesServiceBtn metrikaId_0.9152425741947581="70">
<INPUT id=ctl00_body_EFactura_Agreement1_DezabonareServiceBtn type=submit value=Dezabonare name=ctl00$body$EFactura_Agreement1$DezabonareServiceBtn metrikaId_0.9152425741947581="71">
</DIV>

</FORM>
62 DES
 
08.10.14
12:05
function ea(a)
{
    a=N.getTarget(a);
    if(!l.classNameExists(a,"-metrika-noform")&&"FORM"==a.nodeName)
    {
        for(var e=a.elements,b=0;b<e.length;b++)
            l.isEmptyField(e[b])|| I(e[b]);y(Ca,[u(),a],!0)
    }
}
63 Serginio1
 
08.10.14
12:15
Посмотри еще где упоминается ctl00_body_EFactura_Agreement1_AccesServiceBtn
Accesare serviciu
ctl00$body$EFactura_Agreement1$AccesServiceBtn
в поиске в отладчике
64 Serginio1
 
08.10.14
12:30
Ну и соответственно Xa
65 DES
 
08.10.14
13:36
(63) больше нигде
66 DES
 
08.10.14
13:37
я так понимаю что это делается специально для защиты от API ?
67 Serginio1
 
08.10.14
13:43
(66) Так чему Xa то равно?
А ты в отладчике ищешь, по созданному DOM?
68 DES
 
08.10.14
14:02
щас разберусь с Xa

а как можно получить
AAA
и
123000044185
со страницы ?

<div class="serianumber" data-bind="visible: seriaIsAssigned">
<label>Серия,</label>
<label>№</label>
<span data-bind="text: seria">AAA</span>
<span data-bind="text: number">123000044185</span>
</div>
69 Адинэснег
 
08.10.14
14:08
как хтмл похож на js то :)
70 Asmody
 
08.10.14
14:13
(68) через document.selectNodes("//span[data-bind]") получить массив элементов, обойти его, проверяя через getAttribute("data-bind") значение атрибута data-bind, и получать значение свойства text
71 Asmody
 
08.10.14
14:15
Если selectNodes не сработает, тогда через document.getElementsByTagName("span")
72 DES
 
08.10.14
15:06
(71) document.getElementsByTagName("span") сработал
а вот
a.item(0).getAttribute("data-bind",0) =  
пусто
или как доступиться ?
73 DES
 
08.10.14
15:48
a.item(53).getAttribute("data-bind") = "text: seria"
а дальше как ?
74 Serginio1
 
08.10.14
16:01
Кстати а так
document.selectNodes("//span[@data-bind]") не проходит?
75 Asmody
 
08.10.14
16:02
(73) if a.item(53).getAttribute("data-bind") = "text: seria" then seria = a.item(53).text;
76 DES
 
08.10.14
16:08
понял a.item(53).innerHTML = "EAA"
77 DES
 
08.10.14
16:10
a.item(53).text = Ошибка в выражении!
78 Serginio1
 
08.10.14
16:13
http://valex.net.ru/dom.html#dom11
Вы можете получить текст, содержащийся внутри абзаца, используя свойство textContent. Свойство textContent не существует в старых версиях IE, но другое, свойство - innerText - возвращает тоже значение:
> bd.childNodes[1].textContent;
"first paragraph"

> bd.childNodes[1].innerText;
"first paragraph"

Существует также свойство innerHTML. Оно возвращает (или установливает) HTML-код, содержащийся в узле. Можно заметить, что такое поведение несколько противоречит модели DOM, которая представляет документ как дерево узлов, а не как строки тегов. Но свойство innerHTML оказалось настолько удобным, что встречается повсеместно:
> bd.childNodes[1].innerHTML;
"first paragraph"

Первый абзац содержит только текст, таким образом и innerHTML и textContent (innerText в IE) возвращают одинаковое значение. Однако второй абзац содержит узел EM, таким образом можно увидеть различия свойств:
> bd.childNodes[3].innerHTML;
"<em>second</em> paragraph"
> bd.childNodes[3].textContent;
"second paragraph"

Еще один способ получить текст, содержащийся в первом абзаце - это использовать свойство nodeValue текстового узла, содержащегося в узле-элементе P:
> bd.childNodes[1].childNodes.length;
1
> bd.childNodes[1].childNodes[0].nodeName;
"#text"
> bd.childNodes[1].childNodes[0].nodeValue;
"first paragraph"
79 DES
 
08.10.14
16:14
(74) objDoc.selectNodes("//span[@data-bind]") = Ошибка в выражении!
80 DES
 
08.10.14
16:20
прокатило a.item(?).childNodes.item(0).nodeValue = "EAA"
81 DES
 
08.10.14
17:18
А как значение чекбокса получить из списка чекбоксов ?
<tr><td><input type="checkbox"></td></tr>
<tr><td><input type="checkbox"></td></tr>
<tr><td><input type="checkbox"></td></tr>
<tr><td><input type="checkbox"></td></tr>