Tengo un cuadro de diálogo que realiza un cálculo que depende de tres campos de entrada. Cuando se modifica cualquiera de ellos, verifica si están completos y si están procesando y dando su respuesta.jQuery .change() evento no se activa en IE
Funciona absolutamente bien en FF, Chrome, Opera, etc., pero en cualquier versión de IE simplemente deja de funcionar. El resto de mi jQuery funciona bien, pero no puedo averiguar exactamente dónde está el problema aquí. Creo que podría ser con el evento .change() o el enlace múltiple de eventos, pero realmente no lo sé.
Aquí está el código erróneo:
var loan = $("#ltv-loan-amount");
var mortgage = $("#ltv-mortgage");
var property = $("#ltv-property");
$("#ltv-dialog input").change(function() {
if(loan.val() && mortgage.val() && property.val())
{
var ltv = parseInt(((parseInt(loan.val()) + parseInt(mortgage.val()))/parseInt(property.val()))* 1000);
ltv /= 10;
if(ltv > 0 && ltv < 85)
{
$("#ltv-result").html("<span id=\"ltv-form-result\">" + ltv + "%</span></p><p><a id=\"ltv-link\" href=\"#sidebar-head\">Congratulations, your LTV has passed. Please now proceed with your application opposite.</a>");
$("#amount").val(loan.val());
$("#mortgage_balance").val(mortgage.val());
$("#prop_value").val(property.val());
$("#ltv-link").click(function() {
$("#ltv-dialog").dialog("close");
});
}
else if (ltv > 84)
{
$("#ltv-result").html("<span id=\"ltv-form-result\">" + ltv + "%</span></p><p>Unfortunately your LTV is greater than 85%. You may still qualify for a loan if you reduce the loan amount.");
}
else
{
$("#ltv-result").html("</p><p>Please check your input above as you currently have a negative ltv.");
}
}
});
y el código HTML en cuestión:
<div id="ltv-dialog" title="Do You Qualify for a Loan?">
<p>Please enter the fields below and your LTV will be calculated automatically.</p>
<div id="ltv-form">
<div class="ltv-row">
<label for="ltv-loan-amount">Loan Amount:</label>
<input type="text" name="ltv-loan-amount" id="ltv-loan-amount" class="p000" />
</div>
<div class="ltv-row">
<label for="ltv-mortgage">Mortgage Value:</label>
<input type="text" name="ltv-mortgage" id="ltv-mortgage" class="p000" />
</div>
<div class="ltv-row">
<label for="ltv-property">Estimated Property Value:</label>
<input type="text" name="ltv-property" id="ltv-property" class="p000" />
</div>
</div>
<div class="ltv-row">
<p>Loan to Value % (LTV): <span id="ltv-result"></span></p>
</div>
</div>
Una actualización caso
El cambio parece estar disparando, pero sólo cuando el texto la caja cambia de un valor a nulo.
¿Ha comprobado la consola de errores? –
Creo que el siguiente post te ayudaré a cabo: [http://stackoverflow.com/questions/208471/getting-jquery-to-recognise-change-in-ie][1] [1]: http://stackoverflow.com/questions/208471/getting-jquery-to-recognise-change-in-ie – pascalvgemert
Muestra el HTML correspondiente.Si está utilizando botones de opción o casillas de verificación, es probable que desee escuchar '.click()' en lugar de '.change()'. – jfriend00