按钮OnClick事件在导致文本框onChange事件首先触发时不会触发

时间:2009-10-01 11:20:28

标签: javascript javascript-events

我有几个文本框和按钮,用于在网页上保存其值。文本框的onchange事件触发一些js,它们将更改的文本添加到js数组中。单击时,ok按钮会通过Web服务将其刷新到数据库。当通过单击“确定”按钮导致onchange事件时,此工作正常。在这种情况下,文本框的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 :(得分:0)

是未能执行的__doPostBack函数吗?在这种情况下,return false是一个明显的问题 - 一旦你返回,就不会有更多的代码被执行。

更迂腐的说明,你应该在你的html中停止使用onBlah处理程序,而是使用提供事件观察者的现代javascript库。我建议使用jquery,但extjsprototype也会有效,并且可以通过其他方式让您的生活更轻松。