0

我遇到了 onchange 功能的问题。这是一个示例代码:

<asp:TextBox ID="txtArrivalDate" runat="server" 
             onchange="propertyChangedByCode();" placeholder="Arrival Date" 
             class="datepicker input-small" />

通过一系列测试和调查,我发现 chrome 中的 onchange 在第一次加载时会触发,而在 IE 中,您必须在触发之前编辑一个字段。我需要在 Chrome 中实现 IE 中的行为。你有什么想法?谢谢

4

1 回答 1

0

作为一个简单的解决方案,您可以使用一个标志来指示您是否onchange应该武装。

例如:

var onChangeIsArmed = !isOnChangeRunningOnLoad();

// ...

function propertyChangedByCode() {
    if (onChangeIsArmed) {
        handlePropertyChange();
    } else {
        onChangeIsArmed = true;
    }
}

这不是一个优雅的解决方案,更不用说熟练的解决方案了,但是,作为解决问题的快速而肮脏的方法,它应该可以正常工作。上面未详述的功能的实现由您决定。

于 2013-08-12T09:32:20.397 回答