Клиентская проверка добавляет лишние пустые строки. Почему?
От: Аноним  
Дата: 12.08.05 16:15
Оценка:
Братцы, такая вот штука:
Проверяю javascript'ом правильность ввода значения времени по шаблону, передавая из custom controla ASP значение из текстового поля, также передаю функции javascript'a ID Labela, в которое хочу записать сообщение об ошибке. После проверки и нахождения ошибки вызвается такая функция javascript:

function WriteMistake(elem, template, labelID)
{
    var obj=document.getElementById(labelID)
    obj.innerHTML="<b>Вводимое значение должно быть ввида: " + template+"</b>";
    obj.style.display='inline';
}


В ASP этому лейблу добавлены такие атрибуты стиля


        lblErrorMessage.Style.Add("display", "none");
    lblErrorMessage.Style.Add("position", "relative");
    lblErrorMessage.Style.Add("overflow", "scroll");
    lblErrorMessage.Style.Add("top", "-5px");
    lblErrorMessage.Style.Add("left", "10%");
    lblErrorMessage.ForeColor = Color.Red;


Так вот после клиентской проверки перед текстовым полем, в которое вводится время, и перед которым ничего нет вводится пару пустых строк. Откуда эти строки? Как их побороть?
PS Стандартная проверка времени в ASP отсутствует, только даты.
Re: Клиентская проверка добавляет лишние пустые строки. Поче
От: Аноним  
Дата: 13.08.05 19:02
Оценка:
После длительной проверки выяснилось, что это строки, добавляются VIEWSTATE, которое имеет такой код HTML <input type="hidden" name="__VIEWSTATE" value="..." />. И, очевидно, при клиентской перерисовке забивает место под это поле, хотя и имеет итп hidden. После отправки на сервер отображается без лишней первой строки. Есть ли способ избежать прорисовки этой ненужной строки
Re[2]: Клиентская проверка добавляет лишние пустые строки. П
От: daredevilcs Россия http://helloimyourmind.com/
Дата: 15.08.05 02:42
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>После длительной проверки выяснилось, что это строки, добавляются VIEWSTATE, которое имеет такой код HTML <input type="hidden" name="__VIEWSTATE" value="..." />. И, очевидно, при клиентской перерисовке забивает место под это поле, хотя и имеет итп hidden. После отправки на сервер отображается без лишней первой строки. Есть ли способ избежать прорисовки этой ненужной строки


А style="display: none;" не поможет?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Клиентская проверка добавляет лишние пустые строки. Поче
От: Аноним  
Дата: 15.08.05 04:14
Оценка:
Если задать у всех валидаторов Display="dynamic", то место под них резервироваться не будет:
<asp:RequiredFieldValidator ControlToValidate="..." runat="server" Display="dynamic" />


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Клиентская проверка добавляет лишние пустые строки. П
От: дядя Степа Украина  
Дата: 15.08.05 06:57
Оценка:
Здравствуйте, mo3r, Вы писали:

M>Если задать у всех валидаторов Display="dynamic", то место под них резервироваться не будет:

M><asp:RequiredFieldValidator ControlToValidate="..." runat="server" Display="dynamic" />

Пустое место вставляет ViewState у котороого type='hidden'. И это поле вставляется самим ASP, пожтому я не могу задать ему свойтсво display='none'.

Вот аналог html-страницы:


</HEAD>
<BODY>
    <form>
<input type="hidden" name="__VIEWSTATE" value="dDwtMjAzMzY1OTQyODt0PDtsPGk8MT47PjtsPHQ8O2w8aTwxPjtpPDM+Oz47bDx0PDtsPGk8MD47PjtsPHQ8O2w8aTw0Pjs+O2w8dDxwPHA8bDxUZXh0Oz47bDxcZTs+Pjs+Ozs+Oz4+Oz4+O3Q8O2w8aTwwPjs+O2w8dDw7bDxpPDU+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPFxlOz4+Oz47Oz47Pj47Pj47Pj47Pj47bDxVbml2ZXJzYWxJbnB1dDE7VW5pdmVyc2FsSW5wdXQyOz4+wB1VL3Hmk9j8KxggqnFSWA1MxIs=" />
        <P>
        <input type='text' id='myinput' onchange=insertElement()></input><br>
<SPAN id='mySpan'>Поле перед которым нужно вставить еще поле</SPAN>
        </P>
    <form>
<SCRIPT>
    function insertElement()
    {
        var nod=document.createElement("SPAN");
    var obj=document.getElementById('mySpan');
    var parent=obj.parentNode;
    parent.insertBefore(nod, obj);
        nod.innerText="Orange";
    }
</SCRIPT>

</BODY>


Пустое поле вставляется... Как это избежать?
Re: Клиентская проверка добавляет лишние пустые строки. Поче
От: дядя Степа Украина  
Дата: 15.08.05 07:59
Оценка:
Вроде бы все решилось способом регистрации javascript.
Раньше регистрировалась функция проверки на правильнсоть ввода таки способом:Page.RegisterClientScriptBlock
и после этого вставлялась пустая строка.

Попробовал регистрировать так: Page.RegisterStartupScript и пустая строка не добавляется...
Re[3]: Клиентская проверка добавляет лишние пустые строки. П
От: daredevilcs Россия http://helloimyourmind.com/
Дата: 15.08.05 09:10
Оценка:
Здравствуйте, дядя Степа, Вы писали:

ДС>Пустое место вставляет ViewState у котороого type='hidden'. И это поле вставляется самим ASP, пожтому я не могу задать ему свойтсво display='none'.


А если сделать это на клиенте

Я в скриптах не силен, может, что-то вроде этого:

for(var inp in document.all)
    if(inp.type=="hidden")
        inp.style.display="none";
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.