Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Отловить изменения в TextBox / 18 сообщений из 18, страница 1 из 1
19.03.2010, 05:16:03
    #36529889
Leshiy3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
На форму динамически выводятся TextBox'ы. Нужо обработать внесение изменений в какой-либо из них
aspx:
Код: plaintext
1.
2.
3.
4.
5.
    <form id="form1" runat="server">
    <asp:Label ID="ShowRez" runat="server"></asp:Label>
        <asp:Table runat="server" ID="mainTab">
        </asp:Table>
    </form>
cs:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Params["Val"] != null)
        {
            //просто выводим
            ShowRez.Text = Request.Params["Val"].ToString() + " IN " + Request.Params["TDID"].ToString();
        }
        TableCell tc;
        TableRow tr;
        for (int i =  1 ; i <  5 ; i++)
        {
            tr = new TableRow();
            mainTab.Rows.Add(tr);
            tc = new TableCell();
            tr.Cells.Add(tc);
            TextBox TB = new TextBox();
            TB.ID = "tb" + i.ToString();
            TB.Attributes.Add("onChange", "ChangeVal('" + TB.ID + "')");
            TB.Attributes.Add("onKeyPress", "KeyPress(event,'" + TB.ID + "'); return false;");
            tc.Controls.Add(TB);
        }
    }
javascript:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
function ChangeVal(TdId)
{
EndValue=document.getElementById(TdId).value;
adr="Default.aspx?Val="+EndValue+"&TDID="+TdId;
location=adr;
}

function KeyPress(e,Id)
{
    var CodKey = navigator.appName == 'Netscape' ? e.which : e.keyCode;
    if(CodKey== 13 )
        {
        //типа редактирование закончилось
        ChangeVal(Id);
        }
        else
        {
        //добавляем значиение к полю проверив на то что это цифры и ни что другое
        if(CodKey> 47  && CodKey< 58 )
            {
            document.getElementById(Id).value=document.getElementById(Id).value+String.fromCharCode(CodKey);
            }     
        }
}
Если редактирование заканчивается (как и положено) Enter'ом, то все отрабатывает. Но как отловить ситуацию когда внесены изменения и просто клик мыши в произвольном месте формы? Можно попробовать в KeyPress(e,Id) пихать Id в глобальную переменную, при клике получать последний редактируемый TextBox и обрабатывать его значение. А есть что-то более универсальное?
...
Рейтинг: 0 / 0
19.03.2010, 06:28:56
    #36529905
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
что-то я не понял,событие onchange отменили чтоли? оно же у вас используется
...
Рейтинг: 0 / 0
19.03.2010, 06:46:56
    #36529909
Leshiy3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
Вот и я удивляюсь что onChange не работает вообще
Повесил еще onFocusout вроде шевелится, но как-то уж сильно наворочено получается
...
Рейтинг: 0 / 0
19.03.2010, 07:11:44
    #36529920
Leshiy3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
Leshiy3Повесил еще onFocusout вроде шевелится, но как-то уж сильно наворочено получается
И работает только в IE ни в FF, ни в Опере это уже не пролазит
...
Рейтинг: 0 / 0
19.03.2010, 07:39:12
    #36529938
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
if (TB.addEventListener) {
            TB.addEventListener ("onclick", ChangeVal(TB.ID), false);
        } else if (obj.attachEvent) {
            TB.attachEvent ("onclick", ChangeVal(TB.ID));
        } else {
            TB.onclick = ChangeVal(TB.ID);
        }    
может так?
...
Рейтинг: 0 / 0
19.03.2010, 08:17:24
    #36529981
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
поправка)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if (TB.addEventListener) {
            TB.addEventListener ("change", ChangeVal(TB.ID), false);
        } else if (TB.attachEvent) {
            TB.attachEvent ("onchange", ChangeVal(TB.ID));
        } else {
            TB.onclick = ChangeVal(TB.ID);
        }    

...
Рейтинг: 0 / 0
19.03.2010, 08:40:36
    #36530002
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
Leshiy3На форму динамически выводятся TextBox'ы. Нужо обработать внесение изменений в какой-либо из них
Я правда не понял кто такие TextBox'ы, с точки зрения ХТМЛ-разметки... Но для

Код: plaintext
1.
2.
3.
4.
<INPUT TYPE='<любое_допустимое_значение>' />
..
<textarea>
</textarea>
...

Есть событие onkeypress...

Код: plaintext
<INPUT TYPE='text' NAME=txtEnterValue onkeypress="<любой_допустимый_код>">

Но "универсальным" это тоже не назвать... Т.к. им "учитывается" нажатие только некоторых кнопок.
...
Рейтинг: 0 / 0
19.03.2010, 10:49:40
    #36530209
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
Leshiy3,

Конечно же onchange .
...
Рейтинг: 0 / 0
19.03.2010, 11:19:11
    #36530279
mjQ
mjQ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
автор Но как отловить ситуацию когда внесены изменения и просто клик мыши в произвольном месте формы?
Onblur
...
Рейтинг: 0 / 0
19.03.2010, 12:00:34
    #36530394
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
это потеря фокуса даже без внесения изменений)
...
Рейтинг: 0 / 0
19.03.2010, 13:07:47
    #36530674
mjQ
mjQ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
авторэто потеря фокуса даже без внесения изменений)
и что?! хотя не отвечай - сам отвечу...
на входе запоминаешь значение - на блур сверяешься - любой клиентский валидатор работает по такой схеме и - ЭТО не то?! ;)
...
Рейтинг: 0 / 0
19.03.2010, 13:40:30
    #36530792
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
mjQ,

А чем онченж не подходит? И ничего запоминать и сверяться не надо.
...
Рейтинг: 0 / 0
19.03.2010, 13:51:52
    #36530839
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
ShSerge,

Если посмотреть код ТС, то при смене значения он хочет переходить по сформированной ссылке. Юзер удивится если нажатие любой буквы будет сразу уводить его не туда, куда ему надо.
...
Рейтинг: 0 / 0
19.03.2010, 13:54:22
    #36530852
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
зыShSerge,

Если посмотреть код ТС, то при смене значения он хочет переходить по сформированной ссылке. Юзер удивится если нажатие любой буквы будет сразу уводить его не туда, куда ему надо.
так вроде onchange срабатывает при потере фокуса,не? а не при нажатии в поле любой буквы
...
Рейтинг: 0 / 0
19.03.2010, 13:55:54
    #36530863
mjQ
mjQ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
авторЕсли посмотреть код ТС, то при смене значения он хочет переходить по сформированной ссылке. Юзер удивится если нажатие любой буквы будет сразу уводить его не туда, куда ему надо.
это раз!
авторА чем онченж не подходит? И ничего запоминать и сверяться не надо.
авторВот и я удивляюсь что onChange не работает вообще

это два!

P.S. странно, конечно, что onChange не срабатывает ;)
...
Рейтинг: 0 / 0
19.03.2010, 14:08:17
    #36530915
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
Онченж срабатывает при потере фокуса, если значение при получении и потере фокуса изменилось.
...
Рейтинг: 0 / 0
19.03.2010, 14:13:25
    #36530946
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
собственно этого вроде и хотел ТС...как я понял он не мог динамически назначить элементу это событие
...
Рейтинг: 0 / 0
19.03.2010, 14:34:58
    #36531040
зы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить изменения в TextBox
EmilRegis
так вроде onchange срабатывает при потере фокуса,не? а не при нажатии в поле любой буквы
да точно, запамятовал :(
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Отловить изменения в TextBox / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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