2009-10-01 36 views
0

我有幾個文本框和按鈕來保存它們的值在網頁上。文本框的onchange事件觸發了一些js,這些js將更改後的文本添加到js數組中。單擊確定按鈕將其通過web服務刷新到數據庫。這工作正常,除了當onchange事件是由點擊確定按鈕造成的。在這種情況下,文本框的onchange仍會觸發,但按鈕的onClick事件不會。有任何想法嗎?按鈕OnClick事件不會觸發,當它導致文本框onChange事件首先觸發

文本框看起來像

<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事件根本不會觸發。現在我已經清除了事先調用的函數中的所有內容,但問題仍然存在。但是,如果我完全刪除了通話,它可以正常工作(???)

回答

0

__doPostBack函數那個不執行?在這種情況下,return false是一個明顯的問題 - 一旦你回來了,沒有更多的代碼被執行。

一個更迂迴的筆記,你應該停止在你的html中使用onBlah處理程序,而是使用提供事件觀察者的現代JavaScript庫。我推薦jquery,但extjsprototype也可以工作,並以其他方式使您的生活更輕鬆。

+0

正在追加__doPostBack,因爲在我的.net代碼中,我將輸入的useSubmitBehavior設置爲false。保存之後的函數是saveAmendments函數,它在返回false之前應該已經執行。你會認爲這可能是失敗的文本框onchange事件,但從調試它不會出現。我已經縮小了從本質上沒有任何功能。 – user48408 2009-10-01 12:53:47