Javascript onkeyup防止了IE中的f:ajax

Javascript onkeyup防止了IE中的f:ajax,javascript,ajax,jsf-2,primefaces,Javascript,Ajax,Jsf 2,Primefaces,我遇到了一个奇怪的问题,onkeyup事件阻止ajax事件在IE中执行 <p:inputText id="mileage" value="#{quoteInput.mileage}" styleClass="imedium required" required="true" disabled="#{quoteRequest.quoteDisabled}" onkeyup="typePosReal(this)"> <f:ajax execute="

我遇到了一个奇怪的问题,onkeyup事件阻止ajax事件在IE中执行

<p:inputText id="mileage" value="#{quoteInput.mileage}" styleClass="imedium required" required="true" disabled="#{quoteRequest.quoteDisabled}" onkeyup="typePosReal(this)">
                <f:ajax execute="@this" render="@this"/>
                <mw:convertDouble locale="#{ws.numberFormatLocale}" minFractionDigits="2" maxFractionDigits="2"/>
            </p:inputText>

注释掉“修改字段值”中的行可以使ajax在IE中正常工作。

它可能导致JS错误。您是否检查了JS控制台中的错误?是的,没有错误,并且没有后续的xml/http请求。
typePosReal()
函数到底在做什么?它对
event
?函数typePosReal(field){field.value=(decimalsep==',')?field.value.replace(/\./,','):field.value.replace(/\,/,);field.value=field.value.replace(/[^0-9\,]+/g',);return true;}同时我发现如果我编辑typePosReal()只做“return true”,执行ajax提交。由于这些行并没有真正导致错误,我很好奇为什么更改字段值会阻止f:ajax启动。
function typePosReal(field) {
    field.value = (decimalsep == ',') ? 
         field.value.replace(/\./, ',') : field.value.replace(/\,/, '.'); 
    field.value = field.value.replace(/[^0-9\.,]+/g, ''); return true;
}