Buttons OnClick Событие не запускается, когда оно вызывает событие onChange текстовых полей в первую очередь - PullRequest
0 голосов
/ 01 октября 2009

У меня есть несколько текстовых полей и кнопка для сохранения их значений на веб-странице. Событие onchange текстовых полей запускает некоторые js, которые добавляют измененный текст в массив js. При нажатии на кнопку «ОК» это сбрасывается в базу данных через веб-сервис. Это прекрасно работает , за исключением , когда событие onchange вызвано нажатием кнопки ОК. В этом случае замена текстовых полей по-прежнему срабатывает, а событие onClick кнопки - нет. Есть идеи?

текстовые поля выглядят как

<input name="ctrlJPView$tbcTabContainer$Details$JP_Details_Address2Text" type="text" value="test" 
id="ctrlJPView_tbcTabContainer_Details_JP_Details_Address2Text" onchange="addSaveDetails('Jobs###' +    document.getElementById('ctrlJPView_tbcTabContainer_Details_JP_Details_Address2Text').value + ');" style="font-size:8pt;Left:110px;Top:29px;Width:420px;Height:13px;Position:absolute;" />

Моя кнопка сохранения

<input type="button" name="ctrlJPView$btnOk" value="OK" onclick="saveAmendments();refreshJobGrids();return false;__doPostBack('ctrlJPView$btnOk','')" id="ctrlJPView_btnOk" class="ControlText" style="width:60px;" />

ОБНОВЛЕНИЕ: Я думаю, это сводится к одной из двух вещей. 1) Что-то происходит до вызова onClick кнопки, чтобы прервать этот вызов, такой как непреднамеренный возврат false; или 2) событие onClick вообще не запускается. Теперь я удалил все на самом деле внутри функций, которые вызываются заранее, но проблема сохраняется. Но если я вообще уберу звонок, он будет работать (???)

1 Ответ

0 голосов
/ 01 октября 2009

функция __doPostBack не может быть выполнена? в этом случае return false является очевидной проблемой - как только вы вернетесь, код больше не будет выполняться.

на более педантичной ноте, вы должны действительно прекратить использовать обработчики onBlah в своем html, и вместо этого использовать современную библиотеку javascript, которая предоставляет наблюдатели событий. я рекомендую jquery , но extjs или прототип также сработает и сделает вашу жизнь намного проще для тысячи других способов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...